Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Sobrcecarga de operadores y stl

Estas en el tema de Sobrcecarga de operadores y stl en el foro de C/C++ en Foros del Web. Hola!Este es mi primer mensaje en el foro....esperemos q tenga suerte!^^ Uso c++Builder 4 para programar. Este es mi problema: quiero usar las funciones de ...
  #1 (permalink)  
Antiguo 09/03/2008, 09:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 5
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Sobrcecarga de operadores y stl

Hola!Este es mi primer mensaje en el foro....esperemos q tenga suerte!^^
Uso c++Builder 4 para programar.
Este es mi problema: quiero usar las funciones de la stl (sort, para ser mas especifico) en un vector de structs que yo defini, pero por mas que sobrecargo los operadores necesarios sigo teniendo el mismo problema. Siempre me dice "'operator <' not implemented in type 'ejemplo' for arguments of the same type", lo que no tiene sentido porque sí esta implementado.
(ah, antes de que me vayan a decir, ya reinstale el builder, asi q problema del compilador no es =P)
Aca les paso un codigo cortito con un ejemplo de lo que querria hacer:


#pragma hdrstop
#include <condefs.h>
#include <vector.h>
#include <iostream.h>
#include <conio.h>

//---------------------------------------------------------------------------
#pragma argsused

struct ejemplo{
int p;
bool operator < (const ejemplo &x);
};
bool ejemplo::operator < (const ejemplo &x){
return (p<x.p);
}
int main(int argc, char* argv[])
{
vector<ejemplo> v;
ejemplo a,b;
a.p=13;
b.p=2;
v.push_back(a);
v.push_back(b);
cout<<v[0].p<<" - "<<v[1].p;
sort(v.begin(),v.end()); //aca esta el error, sale en la libreria algorith.h
cout<<endl<<v[0].p<<" - "<<v[1].p<<endl;
getch();
return 0;
}

Muchas gracias al que me de una mano!!
  #2 (permalink)  
Antiguo 09/03/2008, 18:03
 
Fecha de Ingreso: octubre-2006
Mensajes: 11
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Sobrcecarga de operadores y stl

Yo tengo un problema parecido con una clase y el operador <<, pero utilizo <iostream> en vez de <iostream.h> . A ver si tienes suerte y te pueden ayudar , que lo mismo me sirve a mi :P
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:20.