Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2008, 09:03
luks316
 
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!!