复制子向量

bre*_*ett 3 c++

我想分割我的n个元素的数组并将其复制到一个向量中的两半(0到n/2,n/2到n).这样做最简单的方法是什么?

sth*_*sth 10

你想做这样的事吗?

int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

std::vector<int> fst(&array[0], &array[5]);
std::vector<int> snd(&array[5], &array[10]);
Run Code Online (Sandbox Code Playgroud)

这将创建一个fst包含前五个元素的array向量,以及一个snd包含其余元素的向量.


Bil*_*eal 8

要添加到@sth的答案,您可以对所有向量执行相同的操作(并且对他的答案为+1):

std::vector<int> source;
//Add things to source
std::vector<int> first(source.begin(), source.begin() + source.size()/2);
std::vector<int> second(source.begin() + source.size()/2, source.end());
Run Code Online (Sandbox Code Playgroud)