是否可以使用数组副本复制部分向量?

dla*_*nod 3 c++ stl vector

如何在没有循环的情况下将数组的内容复制到C++中的std :: vector?有一个很好的例子,如何简单地将数组的内容复制到一个向量中.

你能用同样的技术将一部分矢量复制到另一个矢量吗?

例如

vector<int> v;

// ...v has some number of elements and we're interested in an 
// arbitrary number (y) from an arbitrary start point (x)...

vector<int> v2(&v[x], &v[x + y]);
Run Code Online (Sandbox Code Playgroud)

chr*_*ris 11

是的,使用迭代器:

vector<int> v2(v.begin() + x, v.begin() + x + y);
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以使它更通用:

vector<int> v2(std::next(std::begin(v), x), std::next(std::begin(v), x + y));
Run Code Online (Sandbox Code Playgroud)

指针版本(数组衰减为两个参数)的原因在于,指针可以被视为随机访问迭代器.