STL常见容器简介

1 顺序容器

1.1 deque

deque:双端队列dobule-ended queue(双向开口), 相当于动态数组;头部和尾部插入与删除数据都很快;这种容器的内存分配是分段连续的,不是所有内存都是连续在一起的

1.2 stack

stack:后进先出 ,只有一个开口,deque有两个开口,deque的功能比stack强大,deque实际上是包含着stack功能

1.3 list 

双向链表,不需要各个元素之间的内存连在一起;查找效率不突出,在任意位置插入和删除元素非常迅速

1.4 forward_list

forward_list是c++11新增加的,单向链表(受限list),但节省了内存,尤其是元素多的时候,节省的内存非常可观

2 关联容器

2.1 set/map

set / map:关联容器;内部实现的数据结构多为红黑树;我们往这种容器中保存数据时,不需要我们指定数据位置,这种容器会自动的给你加入的元素根据一个算法安排一个位置;

map:每个元素有两项,是个键/值(key/value);一般都是通过key找value;(查找特别迅速,插入的速度可能略慢);通过key找value特别快;不允许key相同,如果你非要让key相同,你要采用multimap

set不存在键值对的说法;每个元素就是一个value;元素值不能重复,如果想重复,那么可以采用multiset

2.2 unordered_set,unordered_multiset等unordered_map,unordered_multimap

内部实现位哈希表

发布了123 篇原创文章 · 获赞 31 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_40794602/article/details/102992913