提取矢量的一部分

时间:2014-01-31 09:11:54

标签: c++ vector

提取部分向量的最佳方法是什么?如果我有

std::vector<int> v1(9);

for(int i = 0; i < 9; i++)
    v1[i] = i + 1;

我需要一个放入

的代码
std::vector<int> v2(2);

v1的第二和第三个元素。我必须做一个循环还是有一种最聪明的方法?

2 个答案:

答案 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() );