elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  (STL) Listas e iteradores. No entiendo el error que me da.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (STL) Listas e iteradores. No entiendo el error que me da.  (Leído 1,573 veces)
alpachino98

Desconectado Desconectado

Mensajes: 37


Valar Morghulis


Ver Perfil
(STL) Listas e iteradores. No entiendo el error que me da.
« en: 28 Diciembre 2017, 15:07 pm »

Creo que no termino de entender esto de los iteradores porque no entiendo que error que me da, si alguien me puede decir que es lo que entendido mal...El programa es un diccionario, formado por dos clases: la clase palabra y la clase diccionario. La clase diccionario es una list formada de palabras. Mi error viene cuando intento añadir una nueva palabra al diccionario y me salta este error:

[Error] no match for 'operator<' (operand types are 'Palabra' and 'Palabra')

Y se abre una pagina con esto escrito:

Código:
	    if (*__first2 < *__first1) 

Aquí dejo los dos métodos que uso para añadir una palabra:
Código:
bool Diccionario::encuentraPalabra(const string &s, list<Palabra>::iterator &pos)
{
bool encontrado=false;
Palabra aux;
pos=listapal.begin();
while (pos!=listapal.end())
{
aux=*pos;
if(aux.getContenido()==s)
{
encontrado=true;
break;
}
pos++;
}

return encontrado;
}

void Diccionario :: anyadePalabra(const string &s)
{
list<Palabra>::iterator pos;
Palabra aux;
bool existe;
existe=encuentraPalabra(s, pos);
if(existe==true)
{
aux=*pos;
aux.incNumApariciones();
}

else //el error esta aqui
{
listapal.insert(pos,aux);
listapal.sort();
}

}


En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: (STL) Listas e iteradores. No entiendo el error que me da.
« Respuesta #1 en: 28 Diciembre 2017, 18:30 pm »

Intentas ordenar las palabras, la STL solo provee del algoritmo que usa el operador < entre 2 palabras, pero estas encargado de proveerlo. Si no lo tienes, el compilador lo nota y te reclama.

Agrega un operator< que tome 2 palabras y devuelva un bool comparando las 2 palabras tal como tu las has definido, usando el criterio que tu quieras.


En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error con c$ no entiendo porque!!
Programación Visual Basic
Xrage87 3 1,752 Último mensaje 29 Noviembre 2008, 14:22 pm
por gulabyte
No entiendo este error al compilar :S
Programación C/C++
Destro- 2 2,506 Último mensaje 10 Noviembre 2011, 04:35 am
por Destro-
No entiendo este error
PHP
Xedrox 4 10,006 Último mensaje 6 Febrero 2012, 21:52 pm
por Xedrox
C++ Error al borrar última casilla de un vector con iteradores « 1 2 »
Programación C/C++
Orubatosu 13 7,715 Último mensaje 4 Diciembre 2014, 10:16 am
por Eternal Idol
No entiendo este error de compilación
Programación C/C++
Noob_boy 5 2,339 Último mensaje 8 Enero 2016, 14:03 pm
por Noob_boy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines