PD:Porfavor contestarme, aunque no esteis seguros de que sea por eso por lo que no tira.
Título: Re: Vectores Stl
Publicado por: nicokiki en Sábado 15 de Mayo de 2004, 21:59
Hola!!!!!!
Antes q nada la clase String (o el tipo de dato String) como en JAVA no existe en C/C++ por si sola. Vos podes haberte creado una propia pero no es algo standard salvo q sea el de la STL y hayas hecho algo asi:
Typedef std::string String;
y ahi no habria problemas (ojo, no me acuerdo si el typedef iba con mayuscula al principio).
Lo otro q veo q estas haciendo mal es q le estas pusheando al vector el mismo vector, o sea, esta mal eso. Ahhhhhh, estoy viendo q v es de tipo valor y tambien de tipo vector<valor>. Lo q no entiendo es q eso ni te deberia compilar porque tenes dos variables con el mismo nombre. Lo q deberias hacer es algo asi:
Valor MiValor(conocido, atr); //conocido ya seteado lo mismo q atr tal //cual lo hiciste
v.push_back(MiValor);
Espero q haya servido.
P.D.: La STL es mas q agradable te digo, salvo q vos hayas hecho algo mejor q no pierda memoria ni nada por ningun lado, q tenga como 40 metodos, q corra en ambientes UNIX, no se, me parece q es algo bueno o no????
Salu2!!!!
Título: Re: Vectores Stl
Publicado por: paderni en Sábado 15 de Mayo de 2004, 22:19
Estuve mirando en la ayuda del builder c++ 6.0 y typedef va con minusculas todo.
Gracias por comentar me lo del String que es distinto de string :)
Es que estoy trabajando con el Builder y String piensa que es AnsiString y de ahí viene el lio.
Muchas Gracias :)
Título: Re: Vectores Stl
Publicado por: nicokiki en Domingo 16 de Mayo de 2004, 02:04
Hola de nuevo!!!!!!
El string tampoco es una tipo de datos C ni una clase de C++. Los "strings" en C/C++ se manejan a traves de punteros a caracteres (no es como en Pascal q tenes un string de 255 caracteres o en JAVA q tenes una clase String, una clase StringBuffer, y asi con todo), o sea, "char*". Para poder manejarlos bien deberias manejar punteros aunque a un nivel bastante simple. Con el uso de char*, para poder realizar las operaciones basicas y q sean standard deberias incluir las librerias q te permiten hacer estas operaciones: strcpy() strcat() strlen() strstr() Con esas deberia alcanzar y mirando las man pages o la MSDN te apareceran referencias a mil mas q son muy utiles.
Ahora, si estuvieras programando en MFC, podrias usar CString como dato "string", o como te dije antes, tambien bajo consola, MFC o lo q sea de GNU/LINUX podes usar los string de la STL, pero..............string como dijiste vos, se puede???? si se puede, quien es el q implemento eso??? o es algo q desarrollaste vos??? Yo tengo entendido y creo no estar equivocado q el string como dijiste vos no existe y si llegara a existir dudo q sea ANSI.
Bueno, te dejo, salu2!!!!!!!!!!
Título: Re: Vectores Stl
Publicado por: tiwas en Domingo 16 de Mayo de 2004, 17:46
hola que tal? Pues te digo que en C++ si es posible usar la cadenas, para ello puedes usar la clase string (de la bibliotea estandar de C++), claro que tienes que incluir la libreria "string" (o sea, #include <string>) o la "string.h" que es una libreria antigua, para declarar una cadena seria: "string nombre_cadena;"
Por lo del fallo en tu programa, corrigeme si me equivoco, Me parece que estas tratando de "meter" en v a aux (v.push_back(aux)), pero aux es un vector de string y v es un vector de de valor. En resumen, el vector v, solo recibe variables de tipo valor.
Espero haber ayudado en algo. Cualquier cosa no dudes en preguntar. :)
Título: Re: Vectores Stl
Publicado por: nicokiki en Domingo 16 de Mayo de 2004, 20:04
Hola tiwas!!!!
Te cuento q
Título: Re: Vectores Stl
Publicado por: nicokiki en Domingo 16 de Mayo de 2004, 20:10
Hola tiwas!!!!
Te cuento q cuando incluis a string.h es distinto de incluir a string . El primero te permite realizar ciertos operaciones y el segundo es el string de la STL. El tipo de dato string en C/C++ no existe asi como decis vos. Si existen ciertas variaciones pero como dije antes no existe como si existe en Pascal o en otros lenguajes. Que existan mil millones de librerias q lo implementen puede ser, pero no existen por si solos, o sea, no se si son STANDARD. Q haya algunos compiladores q lo traigan no implica q luego corra en otro sistema operativo por ejemplo. La verdad es q no se donde viste el string, OJO, no niego q exista, pero si te digo si lees algun libro de C/C++ te aseguro q no lo dan comop tipo de dato y en C++ no existe como clase. Existen distintas implementaciones de los string como en MFC como dije antes pero asi como decis vos, lo dudo. Por favor Juank te pido q me respondas si existe o no string a secas como tipo de dato nativo del lenguaje.
Salu2!!!!!
P.D.: El otro mensaje lo mande porque toque el mouse sin querer!!!!!!
Título: Re: Vectores Stl
Publicado por: Ruben3d en Domingo 16 de Mayo de 2004, 21:44
Hola
En C++ la clase string forma parte de la librería estándar, dentro del namespace std, como los streams, y viene documentada en la especificación. Si algún compilador no la incluye es que no sigue la especificación (es como coger y no implementar la cadenas en Pascal, u olvidarse de crear los fstreams de C++ para acceder a ficheros). Que haya visto, viene en VS6, VS.NET y gcc (el de Borland nunca lo he usado, pero seguro que viene).
Un saludo.
Ruben3d
Título: Re: Vectores Stl
Publicado por: nicokiki en Domingo 16 de Mayo de 2004, 22:06
Hola Ruben3d!!
Entonces estas diciendo q la unica clase string es la de la STL, no???
Salu2!!!!!!
Título: Re: Vectores Stl
Publicado por: Ruben3d en Lunes 17 de Mayo de 2004, 13:11
Hola.
Digo que la única clase string que figura en el estándar es la que está en el namespace std, que es una especialización de basic_string, y se incluye con el fichero de cabecera <string>. Eso no excluye que en las MFC, en las nuevas clases .NET o cualquier otro paquete de clases incluya también su propia clase string, que puede llamarse igual siempre y cuando esté en otro namespace.
Podéis ver todas las clases que componen el STL en la web de sgi, aqui os dejo un link a basic_string (con un ejemplo de string):