【发布时间】:2015-05-23 23:44:46
【问题描述】:
我想使用 set 删除重复元素并同时保持它们的顺序。所以我尝试更改比较参数,让它们按照插入的顺序进行排序。
#include <set>
#include <iostream>
using namespace std;
template <class T>
struct compare
{
bool operator() (T x, T y)
{
return true;
}
};
void main()
{
set<int,compare<int>> one;
one.insert(5);
one.insert(3);
one.insert(9);
one.insert(1);
one.insert(5);
one.insert(5);
}
IDE 的表达式是 :invaild operator
【问题讨论】:
-
A
std::set已经订购了它的商品并且不包含重复商品。您无需“帮助”解决任何这些问题。所以我猜set不是你应该使用的容器。 -
您是否有理由要使用 std::set? 你想做什么?
-
我知道它里面没有重复项。我只想按照插入的顺序放置所有元素。
-
例如,"5,3,6,7,1" 已被一一插入,我希望它们仍然保持相同的顺序,,"5,3,6,7, 1",插入该集合后。
-
std::set需要一个简单的弱排序。插入顺序不满足这一点。你的比较器肯定不会。