Lo que estoy tratando de hacer:¿La mejor manera de dividir un vector en dos matrices más pequeñas?
Estoy tratando de dividir un vector en dos matrices independientes. El vector int actual contiene un elemento por línea en un archivo de texto. El archivo de texto es una lista de enteros aleatorios.
Cómo tengo la intención de hacerlo:
Mi idea actual es crear dos matrices int regulares, a continuación, iterar sobre todo el vector y copiar n/2 elementos a cada una de las matrices.
Lo que me gustaría saber:
¿Cuál es la forma más elegante de llevar a cabo mi tarea? Tengo la sensación de que puedo hacer esto sin iterar sobre el vector varias veces.
Código:
#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;
}
Gracias :)
lo recomiendo algo de la '' cabecera (http://en.cppreference.com/w/cpp/algorithm). 'std :: copy' o' std :: move' pueden ser de su interés. –
Me gusta cómo se formula la pregunta. No suele ver buenas preguntas estructuradas como esta de usuarios nuevos. – MOnsDaR
si no planea cambiar el tamaño de las 2 matrices, puede echar un vistazo a 'array_view' – sp2danny