我在做什麼:將矢量拆分爲兩個更小的數組的最佳方法?
我想將一個向量分成兩個單獨的數組。當前的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