[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