我是靠谱客的博主 和谐冬天,最近开发中收集的这篇文章主要介绍C++: set和map知识点总结setmultisetmapmultimap,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

set和map

  • set
  • multiset
  • map
    • operator[]和at()
  • multimap

set

  1. 与map/multimap不同,map/multimap中存储的是真正的键值对<key, value>,set中只放value,但在底层实际存放的是由<value, value>构成的键值对。
  2. set中插入元素时,只需要插入value即可,不需要构造键值对。
  3. set中的元素不可以重复(因此可以使用set进行去重)。
  4. 使用set的迭代器遍历set中的元素,可以得到有序序列
  5. set中的元素默认按照小于来比较
  6. set中查找某个元素,时间复杂度为:log2N(log以2为底,N的对数)
  7. set中的元素不允许修改(为什么?)
  8. set中的底层使用二叉搜索树(红黑树)来实现

multiset

  1. multiset中再底层中存储的是<value, value>的键值对
  2. mtltiset的插入接口中只需要插入即可
  3. 与set的区别是,multiset中的元素可以重复,set是中value是唯一的
  4. 使用迭代器对multiset中的元素进行遍历,可以得到有序的序列
  5. multiset中的元素不能修改
  6. 在multiset中找某个元素,时间复杂度为log2N(log以2为底,N的对数)
  7. multiset的作用:可以对元素进行排序

map

  1. map中的的元素是键值对
  2. map中的key是唯一的,并且不能修改
  3. 默认按照小于的方式对key进行比较
  4. map中的元素如果用迭代器去遍历,可以得到一个有序的序列
  5. map的底层为平衡搜索树(红黑树),查找效率比较高log2N(log以2为底,N的对数)
  6. 支持[]操作符,operator[]中实际进行插入查找

operator[]和at()

相同 : 都是通过key找到与key对应的value然后返回其引用
不同 : 当key不存在时,operator[]用默认value与key构造键值对然后插入,返回该默认value,at()函数直接抛异常.

multimap

  1. multimap中的key是可以重复的。
  2. multimap中的元素默认将key按照小于来比较
  3. multimap中没有重载operator[]操作。
  4. 使用时与map包含的头文件相同:

最后

以上就是和谐冬天为你收集整理的C++: set和map知识点总结setmultisetmapmultimap的全部内容,希望文章能够帮你解决C++: set和map知识点总结setmultisetmapmultimap所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部