Entiendo completamente que esta pregunta ha sido hecha mucho, pero estoy pidiendo una variación específica y mi búsqueda-foo se ha rendido, ya que solo he encontrado algoritmos que anexan uno vector existente a otro, pero no a uno devuelto desde una función.C++ agrega un vector a otro
que tienen esta función que enumera todos los archivos en un directorio:
vector<string> scanDir(const string& dir)
que puede llamarse a sí mismo internamente (para los subdirectorios).
Necesito un corto manera de agregar el valor devuelto al vector de la persona que llama. Tengo en mi mente algo como esto (pero por supuesto que no existe :():
vector<string> fileList;
//...
fileList.append(scanDir(subdirname));
Temo que almacenar el valor de retorno e insertándola en fileList traería maldad rendimiento Lo que quiero decir es esto. :
vector<string> temp(scanDir(subdirname));
copy(temp.begin(), temp.end(), back_inserter(fileList));
Gracias
PS:!. no estoy forzando a mí mismo para el uso de vectores, cualquier otro recipiente que funciona igualmente bien y pueden prevenir el potencial operación de copia grande está bien por mí
relacionadas: http: //stackoverflow.com/questions/2208293/what-is-the-most-efficient-way-to-append-one-stdvector-to-the-end-of-another – kennytm
Cuando hablamos de rendimiento, la primera pregunta siempre es : ¿has medido? Luego, los triviales, ¿se está ejecutando en un ciclo cerrado, es crítico el rendimiento de la aplicación? ¿Cómo se compara la copia de un vector con la recuperación de una lista de archivos del sistema de archivos? –