我通過對第一值具有std::pair<T1, T2>
類型的std::set
含有值隨順序比較:的std ::設定的std ::對 - 如何編寫元件
struct Comparator
{
bool operator() (const std::pair<T1, T2>& lhs, const std::pair<T1, T2>& rhs) const
{
return lhs.first < rhs.first;
}
}
我的定義是std::set<std::pair<T1, T2>, Comparator> s
。
但是,當我嘗試插入具有相同的第一個值與元素插入到集之前(第二個值不同)的對。該集不會插入它。
我想std::set
只處理元素的第二個值相等(或第一個和第二個相等)的地方。怎麼做??
P.S.我不想使用boost庫。
「std :: pair」的默認比較如何不符合您的目的? –
你描述的你想要的是什麼,你的比較似乎是兩回事。 –
@RetiredNinja,我想要兩件事:我想'std :: set'與'std :: pair':1)按對的第一個值進行排序。 2)只要對中的第二個值相等(當然在插入元素時這很重要)。我的比較器只滿足第一個要求。 – peter55555