Co usiłuję zrobić:Najlepszy sposób na podzielenie wektora na dwie mniejsze tablice?
Próbuję podzielić wektor na dwa oddzielne tablice. Bieżący wektor int zawiera element na wiersz w pliku tekstowym. Plik tekstowy jest listą losowych liczb całkowitych.
Jak mam zamiar zrobić:
Mój obecny pomysłem jest utworzenie dwóch regularnych int tablice, a następnie iteracyjne nad całą wektor i skopiuj n/2 elementów do każdej z tablic.
Co chciałbym wiedzieć:
Jaki jest najbardziej elegancki sposób realizacji moje zadanie? Mam wrażenie, że mogę to zrobić bez wielokrotnego powtarzania wektora.
Kod:
#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;
}
Dziękuję :)
polecam coś z '' nagłówku (http://en.cppreference.com/w/cpp/algorithm). 'std :: copy' lub' std :: move' mogą być interesujące. –
Lubię, jak pytanie jest zadawane. Nie widzisz zbyt często takich pytań o uporządkowanej strukturze od nowych użytkowników. – MOnsDaR
jeśli nie planujesz zmienić rozmiaru 2 tablic, możesz rzucić okiem na 'array_view' – sp2danny