如何使用C++STL中的multiset

 时间:2024-11-06 02:58:11

1、multiset 的内部实现和 set 一样,也是一颗红黑树,因此时间复杂度较高如何声明一个 multiset?multiset <value_type> name;还要在头文件中加上 "#include<set>"

如何使用C++STL中的multiset

2、和 set 相比,multiset 和 set 所支持的内置函数几乎一模一样主要有:size()/empty烫喇霰嘴()/clear()/insert(x)/erase(x)/find(x)/count(x)/begin()/end()分别是 大小/判断为空/清空/插入/删除/寻找/查找个数/首迭代器/尾迭代器其中,insert,erase,find 的时间复杂度都是 O(logn)count 的时间复杂度是 O(元素 x 个数+logn)其它的时间复杂度为 O(1)log 以 2 为底,n 是 multiset 中所有元素个数

3、那么,为什么还要有“multiset”这个东西呢?因为这个 multiset 不会自动去重,当你遇到不能去重的时候,就可以用multiset如图,set 与 multiset 的对比

如何使用C++STL中的multiset

4、还有,因为 multiset 不会自动去重,这让 count(x) 函数派上了用场set 会去重,所以元素 x 只会出现 0 次或 1 次,还不如用 find(x) 函数但 multiset 不一样如图,set 与 multiset 的对比

如何使用C++STL中的multiset

5、还有,和 set 一样,mutiset 声明时的类型必须定义小于号int,string 等C++内置变量类型已经自动定义好了小于号但如果 multiset 中元素类型为自定义的结构体时,你需要学会重载运算符如果我们这么写,编译器就会报错

如何使用C++STL中的multiset

6、总而言之,multiset 就是 set 的不去重版本,可以根据需要选择合适的容器,降低编程难度

  • 芝麻杂粮煎饼
  • 2013中国人民大学图书馆学考研初试经验分享
  • 怎样把希腊字母打出来
  • 格拉纳达旅游攻略
  • 办理建筑施工延长作业时间证明办事指南
  • 热门搜索
    八年级上册生物知识点 香蕉的功效与作用 romantic什么意思 十滴水洗脸功效与作用 高考历史知识点总结 李米的猜想到底讲什么 什么是工业4.0 维生素的作用 麦芽糊精的作用 传染病防治知识