使用C11新增的区间循环配合auto让容器迭代写起来更方便:
STL的容器可以分为三大类, 定义在同名头文件:
序列型容器: 数组或链表实现的列表, 数据组织紧凑
关联型容器: 红黑树实现的set和...有x.bucket_count()函数返回当前哈希表的篮子个数
3. 当元素个数>=篮子时, 哈希表自动扩充两倍并重新哈希填充
无序型 unordered_multiset 哈希表 1....容器: vector
vector的基础结构是双倍扩充的数组(实际扩充倍率依编译器决定, 有的编译器如的扩充倍率是1.5, 这个问题以后可能在另一篇文章一起细说), 通过如图的三个迭代器来进行尺寸控制...为了方便deque双端扩充的特性, map是从中间而非某一端填充起的.
deque实现随机访问行为的核心是比较复杂的迭代器设计. deque和vector一样设计了三个迭代器, 但是略有不同....自然的由于这两个容器都对随机访问有需求, 所以不允许使用set或map作为底层
容器: rb_tree
红黑树是STL里使用的树状容器, 算法比较复杂, 结构则是一个双向二叉树链表.