C++ 常见容器】的更多相关文章

C++ STL中常见容器的时间复杂度 map, set, multimap, and multiset 上述四种容器采用红黑树实现,红黑树是平衡二叉树的一种.不同操作的时间复杂度近似为: 插入: O(logN) 查看:O(logN) 删除:O(logN) hash_map, hash_set, hash_multimap, and hash_multiset 上述四种容器采用哈希表实现,不同操作的时间复杂度为: 插入:O(1),最坏情况O(N). 查看:O(1),最坏情况O(N). 删除:O(1…
list支持快速的插入和删除,但是查找费时; vector支持快速的查找,但是插入费时. map查找的时间复杂度是对数的,这几乎是最快的,hash也是对数的.  如果我自己写,我也会用二叉检索树,它在大部分情况下可以保证对数复杂度,最坏情况是常数复杂度,而std::map在任何情况下都可以保证对数复杂度,原因是它保证存诸结构是完全二叉检索树,但这会在存诸上牺牲一些时间. STL   中的   map   内部是平衡二叉树,所以平衡二叉树的性质都具备.查找数据的时间也是对数时间. vector,在…
http://www.169it.com/article/3215620760.html http://www.cnblogs.com/sharpfeng/archive/2012/09/18/2691096.html 在C++的STL库中,要实现排序可以 通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在通过 vector+sort进行排序时,所有元素需要先存入vector容器中,sort在排序时又需要将元素全部取出来再进…
vector: 是一种在结尾处高效插入.删除的容器,本质上是一个动态数组,可以自动维护数组的空间分配.它也允许在开头和中间插入.删除数据,但是效率极低. <span style="font-size:10px;">#include <iostream> #include <vector> #include <string> using namespace std; void main(){ vector<string> str…
迭代器. 基本介绍(来源于网络):迭代器是一种抽象的概念.能够遍历容器内的 部分/全部 元素.每个迭代器中包含着元素的地址.  它可以将 抽象容器 和 泛型算法 结合起来.   大致原理: 1)迭代器对象 包含 容器内元素的地址. 2)通过设计,将元素操作统一. 个人理解: 1)迭代器的概念,有效整合不同容器和泛型算法.它提供了一个接口,用来操作容器内元素. 2)通俗理解:他是STL库的信息接口. 3)它要求所有操作应该有相同接口. 4)容器需要提供自己的迭代器,使用泛型算法尽量使用迭代器. 一…
map, set, multimap, and multiset 上述四种容器采用红黑树实现,红黑树是平衡二叉树的一种.不同操作的时间复杂度近似为: 插入: O(logN) 查看:O(logN) 删除:O(logN) hash_map, hash_set, hash_multimap, and hash_multiset 上述四种容器采用哈希表实现,不同操作的时间复杂度为: 插入:O(1),最坏情况O(N). 查看:O(1),最坏情况O(N). 删除:O(1),最坏情况O(N). 记住,如果你采…
本文主要解决以下问题 STL中sort的使用方法 使用sort对vector的排序 使用sort对map排序 使用sort对list排序 STL中sort的使用方法 C++ STL 标准库中的 sort() 函数,本质就是一个模板函数.该函数专门用来对容器或普通数组中指定范围内的元素进行排序,排序规则默认以元素值的大小做升序排序,除此之外我们也可以选择标准库提供的其它排序规则(比如std::greater降序排序规则),甚至还可以自定义排序规则. 值得一提的是,sort() 函数位于头文件中,因…
`````字符串中反斜杠字符表 转义格式    意义 \'  单引号(') \"  双引号(") \\  反斜杠(\ ) \n  换行 \r  返回光标至行首 \f  换页 \t  水平制表符 \v  重直制表符 \b  倒退 \0  空字符,字符值为零 \0oo    oo为两位八进制表示的字符 \xXX    XX为两位十六进制表示的字符 \uXXXX  Unicode 16的十六进制表示的字符 \UXXXXXXXX  Unicode 32的十六进制表示的字符 S.isdigit(…
自己总结.   扩容 线程安全   是否支持null 的key 说明 hashmap 2*length 否   是 1.8以后增加红黑树.提高检索效率 hashtable   是   否 官方不建议使用,若需要线程安全,请使用concurrentHashMap concurrentHashmap   是   否 分段加锁,相当于多个hashTable,效率提升N(默认16)倍            …