두 개의 A
인스턴스를 비교하는 이진 조건자를 전달해야합니다. 예를
std::lower_bound(v.begin(),
v.end(),
[](const A& lhs, const A& rhs)
{ return lhs.Value() < rhs.Value(); });
또는, C++ 11을 지원하지 않는 경우를 들어
find_if
에 관해서는
bool comp(const A& lhs, const A& rhs)
{
return lhs.Value() < rhs.Value();
}
std::lower_bound(v.begin(), v.end(), comp);
, 원칙은 단항 술어를 필요로하는 것을 제외하고, 즉 펑터 비슷하다 단일 A
을 사용하고 bool
을 반환합니다. , C++ (11)없이
A valueToFind;
std::find_if(v.begin(),
v.end(),
[valueToFind&](const A& arg)
{ return valueToFind.Value() == arg.Value() });
및
bool isEqual(const A& lhs, const A& rhs)
{
return lhs.Value() == rhs.Value();
}
A valueToFind;
std::find_if(v.begin(), v.end(), std::bind1st(isEqual, valueToFind));
기다립니다 ... 무엇 : –
나는 나의 질문을 간단하게한다. A :: Name()입니다. 나는 그들의 문자열 이름과 비교하고 싶다. – user1899020
위의'Name()'을 볼 수 없습니까? –