我正在尝试将 a 添加pair<int,int>
到集合中。如果一对与集合中的另一个共享相同的两个值,则不应插入它。
这是我的非工作代码:
typedef std::pair<int, int> PairInt;
template<>
bool std::operator==(const PairInt& l, const PairInt& r)
{
return (l.first == r.first && l.second == r.second) ||
(l.first == r.second && l.second == r.first);
}
int main()
{
std::set<PairInt> intSet;
intSet.insert(PairInt(1,3));
intSet.insert(PairInt(1,4));
intSet.insert(PairInt(1,4));
intSet.insert(PairInt(4,1));
}
目前,即使已经存在 (1,4) 对,也会添加 (4,1) 对。该集的最终内容是:
(1 3)
(1 4)
(4 1)
我希望它是
(1 3)
(1 4)
我尝试在重载方法中放置断点,但它们从未到达。我做错了什么?