Quello che sto cercando di fare:Il modo migliore per dividere un vettore in due array più piccoli?
Sto cercando di dividere un vettore in due array separati. Il vettore int attuale contiene un elemento per riga in un file di testo. Il file di testo è un elenco di numeri interi casuali.
Come ho intenzione di farlo:
La mia idea attuale è di creare due array int regolari, poi iterare su tutta vettoriale e copiare n/2 elementi a ciascuna delle matrici.
Quello che vorrei sapere:
Qual è il modo più elegante di compiere il mio compito? Ho la sensazione di poterlo fare senza scorrere il vettore più volte.
Codice:
#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;
}
Grazie :)
io consiglierei qualcosa dal '' intestazione (http://en.cppreference.com/w/cpp/algorithm). 'std :: copy' o' std :: move' potrebbe essere di interesse. –
Mi piace come viene posta la domanda. Non vedi molto bene domande strutturate come questa da parte dei nuovi utenti. – MOnsDaR
se non si prevede di modificare la dimensione dei 2 array, è possibile dare un'occhiata a 'array_view' – sp2danny