How do you copy the contents of an array to a std::vector in C++ without looping?有一个很好的例子,说明如何简单地将数组的内容复制到 vector 中。
能否使用相同的技术将一个 vector 的一部分复制到另一个 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]);
最佳答案
是的,使用迭代器:
vector<int> v2(v.begin() + x, v.begin() + x + y);
如果你愿意,你可以让它更通用一点:
vector<int> v2(std::next(std::begin(v), x), std::next(std::begin(v), x + y));
指针版本(数组对于两个参数都会衰减)首先起作用的原因是指针可以被视为随机访问迭代器。
关于c++ - 是否可以使用数组拷贝来复制 vector 的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17464294/