【发布时间】:2017-09-23 15:21:09
【问题描述】:
我想在set<Foo, FooComp>做独一无二的订购。
在下面的代码中,我希望 a 是唯一的,并按 b 和 c 排序。
所以,foo.a 和foo.b 和foo.c 的顺序不同。
我该怎么做?
struct Foo {
int a, b, c;
Foo(int a, int b, int c) : a(a), b(b), c(c) {}
}
struct FooComp {
bool operator() (const Foo& f, const Foo& s) const {
if (f.pattern == s.pattern) {
return false;
}
if (f.start == s.start) {
return f.length < s.length;
}
return f.start < s.start;
}
}
还是我使用其他 STL 或数据结构?
【问题讨论】:
-
我考虑使用 map,
a作为键,(b, c)作为值。但是,地图不是为这种情况设计的(我想)。
标签: c++ sorting set compare unique