使用以下示例代码:
-d
设置 - 包含唯一值。
Multiset - 可以包含重复值。
但在我的set实现中,我将谓词更改为接受重复值。如果我们只是通过更改谓词来实现这一点,date -d"Fri Dec 16 16:27:28 CST 2016" +%s
1481876854
我相信功能也相同,实现也是相同的(平衡树)。如果我遗失了什么,有人可以详细说明吗?
答案 0 :(得分:2)
Compare
关系必须是 严格 -weak ordered (在这两种情况下)§23.2.4/ 2:
每个关联容器都在
Key
上进行参数化,并且排序关系Compare
在Key
的元素上引入严格的弱排序(25.4)。 [...]
和§25.4/ 4:
严格一词指的是反自由关系的要求(
!comp(x, x)
对所有x
),[...]
您的自定义Compare
(cmp
)未达到此要求,因此未定义std::set<int, cmp>
的行为。