Мне нужно найти и стереть значение во множестве пар, отсортированных моей собственной функцией. Очевидно, .find всегда возвращает итератор до конца, а не до искомого значения. Какие-нибудь советы? Это функция:
struct cmp
{
bool operator() (const para &a, const para &b)
{
if (a.first > b.first) return false;
if (b.first > a.first) return true;
if (a.second < b.second) return false;
else return true;
}
};
Редактировать:
kolej.insert(para(0,2));
if (kolej.find(para(0,2)) == kolej.end()) printf("Jej");
Даже если я сделаю что-то подобное, где para - pair<int,int>
, а kolej - multiset
, он всегда будет печатать "Jej"