Witam
Napisałem następujący program, który używa algorytmu uogólniongo find do wyszukania odpowiendniej struktury.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct struktura
{
int wartosc;
struktura(int w){wartosc = w;}
bool operator==(const struktura* s)
{
return wartosc == s->wartosc;
}
};
int main()
{
vector<struktura*> vec;
vec.push_back(new struktura(2));
vec.push_back(new struktura(3));
struktura a(3);
vector<struktura*>::const_iterator iter = find(vec.begin(), vec.end(), &a);
if(iter != vec.end()) cout << (*iter)->wartosc;
else cout << "Nie znaleziono";
}
Problem w tym, że algorytm nie chce wyszukać struktury z wartością 3. Domyślam się że jest tak dlatego, że próbuje on porównynwać adresy wskaźników. Dodałem do struktury przeciążenie operatora == ale to nie pomogło. Czy wie ktoś jak mogę sobie z tym poradzić w inny sposób??