| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Lun 04 Abr, 2011 3:48 pm Asunto: problemas con map |
|
|
Hola gente del foro, estoy realizando algunas modificaciones a un programa que ya hace un tiempo realice, estoy tratando de usar map, digo tratando porque me esta dando algunos problemas.
No puedo acceder al método first.
este error me genera:
| Cita: | | E2316 'first' is not a member of '_STL::_Rb_tree_iterator< ......' |
los include que estoy usando
| Código: | #include <vcl.h>
#include <map> |
el código es:
| Código: | std::map<String,String> m;
std::map<String,String>::iterator i;
m["España"] = "Madrid";
m["Portugal"] = "Lisboa";
m["Francia"] = "París";
//esto lo saque de un ej que da _Leo aqui en foro
for (i = m.begin() ; i != m.end() ; i++){
ShowMessage(i.first);
}
|
este código se encuentra en una hoja de funciones que agrego al proyecto.
cualquier sugerencia sera bienvenida, estoy usando CB6, gracias.
saludos tor _________________ Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr) |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Lun 04 Abr, 2011 5:21 pm Asunto: |
|
|
Hola _Leo gracias por responder, ahora si funciona.
Tengo algunas dudas y el asterisco? comió la vaca jaja luego busco información al respecto.
Te cuento estoy usando Qt y migrando todos mis programas por ej
| Código: | QMap<QString, int>::iterator i = map.find("argentina");
while (i != map.end() && i.key() == "argentina") {
cout << i.value() << endl;
++i;
} |
aqui se accede a los métodos de i por valor.
Otro detalle cuando intento ver la lista generada por el auto completado en CB6 luego del i-> falla, sale un popup con el mensaje "Unable invoke Code Completion due to errors in source code", sin embargo "i->first" funciona .
gracias.
saludos tor _________________ Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr) |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 04 Abr, 2011 6:05 pm Asunto: |
|
|
QMap es una clase propia de Qt, es diferente a la de la libreria estandar. Incluso en Qt si utilizas la libreria estandar es lo mismo:
| Código: | //Añadimos: #include<map> #include<QMessageBox>
std::map<QString,QString> m;
std::map<QString,QString>::iterator i;
m["España"] = "Madrid";
m["Portugal"] = "Lisboa";
m["Francia"] = "París";
for (i = m.begin(); i != m.end(); i++)
QMessageBox::information(this, "prueba", i->first);
|
| Tor escribió: | | Otro detalle cuando intento ver la lista generada por el auto completado en CB6 luego del i-> falla |
En las versiones viejas el autocompletado se lía un poco con las plantillas, esto funciona bastante mejor en las últimas versiones de C++Builder. |
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Lun 04 Abr, 2011 6:38 pm Asunto: |
|
|
Mas claro imposible, gracias.
saludos tor _________________ Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr) |
|
| Volver arriba |
|
 |
|