【发布时间】:2020-05-11 12:11:14
【问题描述】:
我们在这里对单组有很好的解释:
但我想知道这对于如下集合的数组是如何工作的:
bool cmp(const pair <int, int> &a, const pair <int, int> &b) {
if (b.first < a.first)
return true;
return a < b;
}
set <pair <int, int>, decltype(&cmp)> block[SQ](&cmp);
我更喜欢方法3,但你可以回答任何你喜欢的方法。
【问题讨论】:
-
这是未定义的行为。比较函数不是严格的弱序。
-
set <pair <int, int>, decltype(&cmp)> block[SQ](&cmp)无效。我猜你的意思是为每个数组元素调用set的构造函数,比如set <pair <int, int>, decltype(&cmp)> block[SQ] = { set <pair <int, int>, decltype(&cmp)>(&cmp), set <pair <int, int>, decltype(&cmp)>(&cmp), etc. } -
是的,我是这个意思;但是我该如何编码呢?