C++ STL容器简介
1.容器分类
STL序列容器:vector、string、deque、list
STL关联容器:set、multiset、map、multimap
STL适配容器:stack、queue、priority_queue
2.容器简介
1.vector
vector内部是使用动态数组的方式实现的,如果动态数组的内存不够用,就要动态地重新分配,一般是当前大小的两倍,然后把原数组的内容拷贝过去,所以,在一般情况下,其访问速度同一般数组,只有在重新分配发生时,其性能才会下降。
特点:它能非常好地支持随机存取,查找十分快捷,插入、删除慢。
2.list
list由双向链表实现的,因此它的内存空间可以是不连续的。只能通过指针来进行数据的访问。
特点:随机存取变得非常没有效率,插入和删除很有效率。
3.deque
称为双向队列,表面上与vector非常相似,甚至能在许多实现中直接替换vector。
特点:deque使用一段一段的定量内存,在进行内存扩充时也只是加一段定量内存,deque头尾两端分别做插入和删除操作都是常数时间
4.set、multiset
特点:内部的元素依据其值自动排序,Set内的相同数值的元素只能出现一次,Multisets内可包含多个数值相同的元素,内部由红黑树实现,平均和最坏情况下的插入、删除、查找时间都是O(lgn)。
5.map、multimap
特点:内部的元素依据其值自动排序,map内的相同数值的元素只能出现一次,multimap内可包含多个数值相同的元素,内部由红黑树实现,平均和最坏情况下的插入、删除、查找时间都是O(lgn)。
6.hashmap
hashmap底层用的哈希表,它的优点在于它的各项操作的平均时间复杂度接近常数。不是标准的一部分。
还没有评论,来说两句吧...