我无法理解向量复制构造函数和范围构造函数之间的优点或区别。当我像这样构造三个向量时:
vector<int> FirstVec(3, 911); //fill constructor
vector<int> SecondVec(FirstVec.begin(), FirstVec.end()); //range constructor
vector<int> ThirdVec(FirstVec); //copy constructor
的内容SecondVec
and ThirdVec
完全相同。是否存在使用其中一种具有优势的场景?谢谢。
当您想要复制不同类型容器的项目,或者不想复制整个范围时,范围构造函数非常有用。例如
int a[] = {1,2,3,4,5};
std::set<int> s{3, 911};
std::vector<int> v0{1,2,3,4,5};
std::vector<int> v1(std::begin(a), std::end(a));
std::vector<int> v2(a+1, a+3);
std::vector<int> v3(s.begin(), s.end());
vector<int> v4(v0.begin(), v0.begin() + 3);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)