Путаница в стиле условия std :: map find_if

Я бы хотел использовать std :: find_if для поиска первого элемента на моей карте, который имеет определенное значение в определенном элементе его структуры значений. Хотя я немного запутался. Я думаю, мне нужно использовать bind1st или bind2nd, но я не уверен, что это правильный путь.

Вот какой-то псевдокод:

struct ValueType { int x, int y, int z };

std::map<int, ValueType> myMap;

... {populate map}

std::map<int, ValueType>::iterator pos = std::find_if(myMap.begin(), myMap.end(), <?>); 

Итак, допустим, я хотел найти первый элемент карты, где член .x ValueType был равен определенному целочисленному значению (которое может изменять каждый вызов).

Как лучше всего написать функцию или функциональный объект для достижения этой цели? Я понимаю, что это должен быть унарный предикат, который заставляет меня думать, что мне понадобятся bind1st или bind2nd для предоставления целочисленного значения, которое я проверяю, но я не уверен, как это сделать. Прошло слишком много времени с тех пор, как я смотрел на это! >. <

13
задан John Humphreys - w00te 8 November 2011 в 17:00
поделиться