Я хочу найти в векторе указателей объектов для соответствующего объекта. Вот пример кода, чтобы проиллюстрировать мою проблему:Как использовать алгоритм поиска с вектором указателей на объекты в C++?
class A {
public:
A(string a):_a(a) {}
bool operator==(const A& p) {
return p._a == _a;
}
private:
string _a;
};
vector<A*> va;
va.push_back(new A("one"));
va.push_back(new A("two"));
va.push_back(new A("three"));
find(va.begin(), va.end(), new A("two"));
Я хочу найти второй элемент, вставляемый в вектор. Но так как вектор определяется как набор указателей, C++ не использует мой перегруженный оператор, но использует неявное сравнение указателей. Каков предпочтительный C++-путь решения в этой ситуации?
Я думаю, это должно быть find_if в коде? – esrkan 2008-11-03 15:21:52