我在做什么:将矢量拆分为两个更小的数组的最佳方法?
我想将一个向量分成两个单独的数组。当前的int向量在文本文件中每行包含一个元素。该文本文件是一个随机整数列表。
如何,我打算这样做:
我现在的想法是创建两个常规INT数组,然后遍历整个载体和复制N/2元素,每个阵列。
我想知道:
什么是完成我的任务最优雅的方式是什么?我有一种感觉,我可以做到这一点,而无需多次迭代向量。
代码:
#include <vector>
#include <fstream>
#include <iterator>
#include <iostream>
using namespace std;
vector<int> ifstream_lines(ifstream& fs)
{
vector<int> out;
int temp;
while(fs >> temp)
{
out.push_back(temp);
}
return out;
}
vector<int> MergeSort(vector<int>& lines)
{
int split = lines.size()/2;
int arrayA[split];
int arrayB[split];
}
int main(void)
{
ifstream fs("textfile.txt");
vector<int> lines;
lines = ifstream_lines(fs);
return 0;
}
谢谢:)
我会从''头(HTTP推荐一下/en.cppreference.com/w/cpp/algorithm)。 'std :: copy'或'std :: move'可能会引起人们的兴趣。 –
2012-03-21 19:11:47
我喜欢这个问题。你不会经常从新用户那里看到这样的好结构化问题。 – MOnsDaR 2013-07-29 05:47:44
如果你不打算改变2个数组的大小,你可以看看'array_view' – sp2danny 2016-03-09 12:26:51