
STL
STL笔记
爱上小公举
希望明天的我
仍然对不同充满宽容
继续对未知饱含敬畏
展开
-
C++ 关联式容器之unordered_map
说到关联式容器, 需要区分是序列式容器, 例如vector, list, deque等都是序列式容器, 序列式其特点都体现在 "序列"上 .序列式容器中存储元素是线性排布的, 在进行查找搜索时效率较低. 序列式容器并不会对插入元素进行任何方式的重新排序,插入在哪个位置就在哪个位置 .关联式容器, 特点也体现在 "关联"上, 关联式容器通过键值对(包括key和value), 将存储的每一个数据value与一个键值key一一对应起来, 只需要通过键值key就可以读写元素, 在查找搜索时效率高. 关联式容器原创 2020-02-23 21:36:00 · 3262 阅读 · 0 评论 -
C++ priority_queue (STL容器适配器)
优先队列priority_queue是一个堆1. 底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。但容器必须可以通过随机访问迭代器访问,并支持以下操作:empty():检测容器是否为空size():返回容器中有效元素个数front():返回容器中第一个元素的引用push_back():在容器尾部插入元素pop_back():删除容器尾部元素2. 标准容器类vector和deque满足这些需求。默认情况下,如果没有为特定的priority_queue类实例化原创 2019-10-16 11:02:59 · 680 阅读 · 0 评论 -
C++ queue (STL容器适配器)
1. 队列是一种容器适配器,专门用于在(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。2. 队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。3. 底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。该底层容器应至少支持以下操作:empty:检测队列是否为空size:返回队列中有效元素的个数front:返回队头元素的引用back:返回队尾元素的引用push_back:在队原创 2019-10-15 23:50:17 · 781 阅读 · 1 评论 -
C++ stack (STL容器适配器)
目录适配器stackstack的使用stack模拟实现适配器适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),适配器是将一个类的接口转换成客户希望的另外一个接口。举个栗子, 咱们香港的插头和我们内地是不一的, 如下图, 这种插头在咱们内地是不方便使用的, 要是香港同胞到对岸深圳转一转, 被繁华的深圳所吸引, 不禁多留...原创 2019-10-15 22:54:34 · 893 阅读 · 1 评论 -
C++STL容器之list和常用接口的实现
目录1. vector的常用接口2. list常用接口实现简介1. list这个容器的底层是双向带头循环结构实现的2. list每个不支持随机访问(所以就没有[]重载, 迭代器也不能进行加减运算, 只能++和--), 访问元素O(n)的时间复杂度(不如vector, vector可以随机访问, 复杂度为O(1))3. list在任何位置插入或删除都很快, 都是O(1)的复杂度...原创 2019-10-14 18:49:23 · 1048 阅读 · 0 评论 -
C++ STL容器之vector和常用接口的实现
目录vector的常用接口vector常用接口实现简介1. vector是表示可变大小数组的序列容器。2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。3. 本质上来说,vector使用动态分配数组来存储它的元素。当新元素...原创 2019-09-26 22:56:04 · 1989 阅读 · 0 评论