我了解如何使用 find(vector.begin(), vector.end(), item)!=vector.end()
在 vector 中查找特定值br/> 但是,我有一个指向 Restaurant 类型对象的指针 vector ,我需要能够在该 vector 中搜索每个元素指向的对象的属性。
我不确定我是否可以构建对 vector 的 .find() 方法的调用来解决这个问题,或者我是否需要找到另一种方法来执行此操作。
vector 中使用该类查找餐厅名称的调用是
(restaurantPointerVector[i])->getRestaurantName()
但我需要知道如何搜索此属性以返回具有我正在搜索的名称的 Restaurant 对象是否已经存在在 vector 中。
最佳答案
find_if
是你的 friend 。这是一个例子:
struct Comparator {
const char* expected_name;
Comparator(const char* _expected_name)
: expected_name(_expected_name)
{}
bool operator()(const Restaurant* r1) const
{ return !strcmp(r1->getRestaurantName(), expected_name); } // Just an example using strcmp
};
然后:
find_if(vector.begin(), vector.end(), Comparator("Searched Restaurant Name"));
当然,使用 C++0x 会更好...
关于c++ - 在指针 vector 中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145670/