std::pair
перегрузки operator==
, поэтому вы можете использовать std::find
для утвердительного ответа:
bool b = std::find(v.begin(), v.end(), std::make_pair(false, false)) == v.end();
, и вы можете использовать std::find_if
для отрицательного значения:
bool b = std::find_if(v.begin(), v.end(),
std::bind2nd(std::not_equal_to<std::pair<bool, bool> >(),
std::make_pair(false, false)))
!= v.end();
Второй может быть написан гораздо проще на C ++ 0x:
bool b = std::find_if(v.begin(), v.end(),
[](const std::pair<bool, bool> p) {
return p != std::make_pair(false, false);
}) != v.end();