提取部分向量的最佳方法是什么?如果我有
std::vector<int> v1(9);
for(int i = 0; i < 9; i++)
v1[i] = i + 1;
我需要一个放入
的代码std::vector<int> v2(2);
v1的第二和第三个元素。我必须做一个循环还是有一种最聪明的方法?
答案 0 :(得分:5)
使用vector
构造函数
std::vector<int> v2(v1.begin() + 1,v1.begin() + 3);
如果v2
已存在,请使用assign
v2.assign(v1.begin() + 1,v1.begin() + 3);
答案 1 :(得分:2)
您可以使用std :: copy(),假设您想要将v1中的第一个和第二个元素插入到v2的开头,那么您可以使用以下内容。
std::copy ( v1.begin()+1, ,v1.begin() + 3, v2.begin() );