Используя метод find, легко найти есть ли заданное значение в контейнере, или нет:
std::vector
и так далее;
Но что, если вектор содержит какие-либо структуры, объекты, или даже указатели на них? Возможно ли использовать эту функцию для нахождения необходимого значения, если оно является полем класса, а вектор состоит из указателей на объект этого класса? Что-то вроде:
class ClassName {
public:
int x;
std::string y;
};
std::string foo = "bar";
std::vector
Что нужно написать вместо знаков вопроса, чтобы найти такой указатель, который указывает на объект, поле std::string y которого равно строке foo ? Если это невозможно с алгоритмом find, то какие альтернативы?
Ответ
Используйте find_if, она принимает предикат.
std::string foo = "bar";
std::vector
Комментариев нет:
Отправить комментарий