Algo asi habia pensado yo también, pero yo siempre que quiero hacerme una estructura, lo hago sin el typedef
struct Punto{ vector<float> coord; int n_cluster;
Punto(){ coord=vector<float>(3,0); } };
De la otra forma, en el constructor de Punto, me dice "error: ISO C++ prohíbe la declaración de ‘Punto’ sin tipo [-fpermissive]", supongo que porque se está intentando usar antes de haber declarado Punto.
amchacon
Revolinuxnario
18.348 mensajes desde nov 2008 en /kernel/fork.c:330
amchacon escribió:Escribe al principio del programa "using name space std".
Así ya no tendrás que poner std:: nunca más...
pues eso no lo sabia xD
Yo no he puesto el std:: porque nunca me ha hecho falta ponerlo... pero es que claro, siempre pongo el "using namespace std;" porque directamente me acostumbraron a eso, sin explicarme para que servia siquiera xD
1) Los contenedores de STL copian mucho sus elementos. No se si realmente te interesa andar copiando muchas veces ese vector de floats. 2) Realmente:
struct Punto { std::vector<float> coord; int n_cluster;
Punto() : coord(0, 3) { } };
3) Si tu vector de 'coord' solo tiene 3 elementos. Usa otra cosa como un array, un boost::array o algo similar. 4) "using namespace std;" te puede traer más problemas de los que crees. Es mejor que hagas "using std::vector;" si realmente escribir "std::" es tan laborioso.