Вызов функции-члена объекта внутри вектора - PullRequest
0 голосов
/ 30 апреля 2011

Это продолжение моего предыдущего вопроса, касающегося извлечения и редактирования частных членов объектов в векторе .

У меня есть вектор, полный объектов, у которых есть закрытые члены, к которым мне нужен доступ. Я создал функции доступа для возврата каждого закрытого члена и теперь ищу лучший способ перебрать вектор объектов, возвращая из него определенный закрытый член и сравнивая его с заданной переменной, пока не будет найдено совпадение.

Я рассмотрел использование find_if, но мне не повезло с использованием возвращаемых значений функций-членов для каждого объекта в векторе в качестве критерия.

Также я не смог использовать for_each для выполнения этой работы.

Причина, по которой я создаю дополнительный вопрос, заключается в том, что я живу для этого дольше, чем следовало бы, и становится все более насущным, что я нахожу решение этой проблемы. Любое движение в правильном направлении будет с благодарностью!

1 Ответ

2 голосов
/ 30 апреля 2011

Создайте функтор:

struct CompareTo{
    CompareTo(const AnotherObject& aValue) : theValue(aValue){}

    bool operator()(const Object& anObject) const{
        return anObject.getMemberVar() == theValue;
    }

    const AnotherObject& theValue;
};

, который можно поместить в find_if.

...