C++中map,vector容器的<(小于号)比较算法是否为严格弱序算法?

发布网友 发布时间:2022-04-25 19:05

我来回答

2个回答

热心网友 时间:2023-10-13 15:15

首先,两个vector容器之间只有“==”和“!=”两种关系,vector容器内部元素的类型也不一定要重载小于号。
不过,如果要对一个vector进行排序的话,那么元素一定要重载小于号,而且是严格弱序。因为sort函数对于A和B来说,如果A<B和B<A同时不成立的话,那么A就等于B。如果在 A != B 时,出现A < B 的同时又有 B < A的情况,那么排序算法就起不到判定相等作用了。
同样地,map内部由红黑树(一种平衡二叉树)实现,本质上来说和排序算法是等同的,而且又自带了去重功能。如果没有严格弱序,一个map里就可能出现两个同样的关键值,那么程序就很可能因此出现错误。追问vector容器是重载了小于号的,这个MSDN可以查到,因此江哥vector是可以比较大小的,我就想知道这种容器之间比较大小的算法是不是严格弱序的

热心网友 时间:2023-10-13 15:15

《红楼梦》人物画-林黛玉《红楼梦》人物画-林黛玉

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com