<div dir="ltr">Creo que tengo una idea. <br><br>stExample* a = foo();       // tienes razon aqui programante. Fallo mio :)<br>std::vector<stExample> temp = (a, a + sizeof(a) / sizeof(stExample));   //Esto crea un vector cuyo valor inicial es el contenido del vector<br>
<br>y luego ya puedo hacer lo que quiera con el porque estoy en el mundo de STL, como <br>examples = temp;<br><br>No tengo un compilador a mano pero creo que funcionaria. En cuanto pueda lo pruebo y os digo algo.<br><br><br>

> De todos modos, para lo que quieres hacer, ¿no te vale el operador de copia de stl::vector?<br>Pues lo que hace la clase que devuelve el puntero es leer de un archivo. Primero lo vuelca en memoria y despues va leyendo trozos. El puntero va muy bien por que puedo copiar bloques de memoria. Si por ejemplo, durante el parseo, tengo que copiar 100 int, no hago un bucle sino un memcpy.<br>
<br>Pero fuera de esa clase, que hace un buen servicio, no quiero salirme demasiado de todas las ventajas que me aporta STL, de ahi que quiera transformar el puntero a un vector.<br><br>Muchas gracias por todo.<br clear="all">
Ferran<br>
<br><br><div class="gmail_quote">2008/10/9 Programante <span dir="ltr"><<a href="mailto:programante@gmail.com">programante@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Ferran Ferri escribió:<br>
> (...)<div class="Ih2E3d"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Para copiar el puntero a vector, se que puedo ir extrayendo uno por uno los elementos de stExample con un bucle y copiarlos<br>
<br>
stExample a = foo();<br>
</blockquote></div>
Puesto que devuelve un puntero, usarías stExample* a = foo();<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
for(...){<br>
    examples.push_back(stExample[i++]);<br>
}<br>
</blockquote></div>
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.<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
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.<br>

</blockquote></div>
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).<br>
<br>
De todos modos, para lo que quieres hacer, ¿no te vale el operador de copia de stl::vector?<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Muchas gracias<br>
Ferran<br>
</blockquote>
De nada.<div><div></div><div class="Wj3C7c"><br>
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br></div>