[C con Clase] Copiar de puntero a std::vector
Programante
programante en gmail.com
Jue Oct 9 15:53:14 CEST 2008
Ferran Ferri escribió:
> (...)
> Para copiar el puntero a vector, se que puedo ir extrayendo uno por
> uno los elementos de stExample con un bucle y copiarlos
>
> stExample a = foo();
Puesto que devuelve un puntero, usarías stExample* a = foo();
> for(...){
> examples.push_back(stExample[i++]);
> }
Usar push_back es ineficiente. Puesto que sabes el número de elementos
usarías examples.resize( nº elementos ); y luego copiarías cada elemento.
>
> Mi pregunta es si seria posible usar la funcion copy de <algorithm>
> para copiarlo de una vez en dentro del vector. Lo digo por que el
> codigo se veria mucho mejor y ademas no tengo que checkear tantos
> errores yo mismo teniendo la magnifica libreria STL.
Esa copia la puedes hacer con stl::copy() si foo() devuelve algo
iterable (por ejemplo, devuelve el vector y no un puntero a sus elementos).
De todos modos, para lo que quieres hacer, ¿no te vale el operador de
copia de stl::vector?
>
> Muchas gracias
> Ferran
De nada.
Más información sobre la lista de distribución Cconclase