c++ list, vector, map, set 区别与用法比较
来源:互联网 发布:七龙珠超漫画软件 编辑:程序博客网 时间:2024/05/07 22:44
总结:Vector,List,Set都只有键值(key)。
Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快(push_back)。
List封装了链表,List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动数据,只需要改变指针的指向就可以了。
Set使用了非常高效的平衡检索二叉树:红黑树。特点1)键值按从小到大排序。2)检索,插入,删除比较快3)集合内没有重复的键值。但是,构造set集合主要目的是为了快速检索,不可直接去修改键值。
Map,Set属于标准关联容器,使用了非常高效的平衡检索二叉树:红黑树,
Map:原型 map<Key, Data, Compare, Alloc> 。特点1)键值按从小到大排序。2)检索,插入,删除比较快3)集合内没有重复的键值。
hash_map:特点1)键值不排序。2)集合内没有重复的键值。
总 体来说,hash_map 查找速度会比map快,而且查找速度基本和数据量大小无关,属于常数级别;而map的查找速度是log(n)级别。hash还有hash函数的耗时。当有100w条记录的时候,map也只需要20次的比较,200w也只需要21次的比较!所以并不一定常数就比log(n) 小!
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++中list, vector, map, set 区别与用法比较
- c++ list, vector,deque, map,set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- C++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- c++ list, vector, map, set 区别与用法比较
- web前端---html5
- Android Studio教程01-安装与配置
- Android内存优化
- QWidget类的move()方法 移动窗口
- 理解collate Chinese_PRC_CI_AS ,请看实例:sql语句中如何识别字符串中的中文逗号的问题
- c++ list, vector, map, set 区别与用法比较
- 使用百度地图完成地址选择界面
- Service和IntentService区别
- javascript 调试
- 服务器环境搭建 v2
- unspecified on project XXX resolves to an APK archive which is not supported as a compilation depend
- oracle表锁定与解锁
- 使用Eclipse开发ABAP程序
- 设置行间距,计算带行间距的文本高度