multiset如何处理相同元素

multiset和set都是以红黑树形式实现的,唯一差别就是multiset可以存储相同元素。

那么在插入相同元素的时候,后插入的元素究竟是排在先前已经存在的相同元素的左边还是右边呢。

事实上默认定义了小于运算符<,换言之,满足小于运算符定义关系的元素会被插入到比较元素的左边,而大于等于未定义,也就是说等于情况被归类于大于的情况。也就是说相同的元素会被插入到先前已经存在元素的右边。

试想之,如果我们重新定义比较函数类似如下:

bool operator <(const int a, const int b) {
    return a <= b;
}

那么任意元素元素会插入到已经存在的与之相同元素的左边。

例题:leetcode 295 优化方法二:

Loading...

这里只是做个记录,后续会对相关的知识进行完善,这个文章先占个坑。 

上一篇:自定义排序规则的multiset用法(1)


下一篇:L3-028 森森旅游(最短路 + multiset)