Лучший способ разделить вектор на два меньших массива?

Что я пытаюсь сделать:

Я пытаюсь разбить вектор на два отдельных массива. Текущий вектор 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;
}

Спасибо :)

24
задан mightcouldb1 21 March 2012 в 19:08
поделиться