摘要: #include < unordered_map > map: map内部实现了一个红黑树(红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二叉搜索树),红黑树具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素。因此,对于map进行的查找,删除,添加等 阅读全文
posted @ 2019-09-01 15:59 Austin_anheqiao 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 序列容器是管理数据的宝贵工具,但对大多数应用程序而言,序列容器不提供方便的数据访问机制。一种典型的方法是通过名称来寻找地址。如果记录保存在序列容器中,就只能通过搜索得到这些数据。相比而言,map 容器提供了一种更有效的存储和访问数据的方法。 map 容器是关联容器的一种。在关联容器中,对象的位置取决 阅读全文
posted @ 2019-09-01 15:56 Austin_anheqiao 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 堆(heaps)不是容器,而是一种特别的数据组织方式。堆一般用来保存序列容器。 堆是一个完全二叉树,每个节点与其子节点位置相对。父节点总是大于或等于子节点,这种情况下被叫作大顶堆,或者父节点总是小于或等于子节点,这种情况下叫作小顶堆。注意,给定父节点的子节点不一定按顺序排列。 创建堆 用来创建堆的函 阅读全文
posted @ 2019-09-01 15:13 Austin_anheqiao 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 只能访问 stack 顶部的元素;只有在移除 stack 顶部的元素后,才能访问下方的元素。 堆栈操作 top():返回一个栈顶元素的引用,类型为 T&。如果栈为空,返回值未定义。 push(const T& obj):可以将对象副本压入栈顶。这是通过调用底层容器的 push_back() 函数完成 阅读全文
posted @ 2019-09-01 14:58 Austin_anheqiao 阅读(155) 评论(0) 推荐(0) 编辑
摘要: #include <queue> priority_queue 容器适配器定义了一个元素有序排列的队列。默认队列头部的元素优先级最高。因为它是一个队列,所以只能访问第一个元素,这也意味着优先级最高的元素总是第一个被处理。但是如何定义“优先级”完全取决于我们自己。 priority_queue<Typ 阅读全文
posted @ 2019-09-01 14:55 Austin_anheqiao 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 只能访问 queue<T> 容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。 操作 front():返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。 back():返回 queue 中最后一 阅读全文
posted @ 2019-09-01 14:51 Austin_anheqiao 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能。之所以称作适配器类,是因为它可以通过适配容器现有的接口来提供不同的功能。 这里有 3 种容器适配器: 适配器类在基础序列容器的基础上实现了一些自己的操作,显然也可以添加一些自己的操作。它们提供的优势是简化了公共接口 阅读全文
posted @ 2019-09-01 14:47 Austin_anheqiao 阅读(182) 评论(0) 推荐(0) 编辑
摘要: array<T,N>(数组容器)是一个长度固定的序列,有 N 个 T 类型的对象,不能增加或删除元素。 vector<T>(向量容器)是一个长度可变的序列,用来存放 T 类型的对象。必要时,可以自动增加容量,但只能在序列的末尾高效地增加或删除元素。 deque<T>(双向队列容器)是一个长度可变的、 阅读全文
posted @ 2019-09-01 14:45 Austin_anheqiao 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 单链表的形式存储元素。forward_list 的模板定义在头文件 forward_list 中。fdrward_list 和 list 最主要的区别是:它不能反向遍历元素;只能从头到尾遍历。 forward_list 的单向链接性也意味着它会有一些其他的特性: 无法使用反向迭代器。只能从它得到co 阅读全文
posted @ 2019-09-01 14:42 Austin_anheqiao 阅读(193) 评论(0) 推荐(0) 编辑
摘要: list是一个线性双向链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块(即实际存储的数据)、一个前驱指针和一个后驱指针。 它无需分配指定的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有序的元素链接起来。 由于其结构的原因,list 随机检索的性能非常的不好, 阅读全文
posted @ 2019-09-01 14:39 Austin_anheqiao 阅读(246) 评论(0) 推荐(0) 编辑
摘要: #include <deque> 双端队列,可以在队头队尾进行入队出队操作 阅读全文
posted @ 2019-09-01 14:05 Austin_anheqiao 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 目录 介绍 1 创建 2 容量和大小 size() capacity() 3 resize() 4 reverse() 5 获取元素 front() back() 6 迭代器(待补充) 7 push_back() 8 emplace_back() 9 emplace()(待补充) 10 insert 阅读全文
posted @ 2019-09-01 11:56 Austin_anheqiao 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 目录 介绍 1 构造函数 2 fill() 3 元素的获取 4 size() 5 empty() 6 front() 7 back() 8 get<n> 9 迭代器(待补充) 10 元素的比较 介绍 array<T,N> (数组容器) :是一个长度固定的序列,有 N 个 T 类型的对象,不能增加或删 阅读全文
posted @ 2019-09-01 11:06 Austin_anheqiao 阅读(206) 评论(0) 推荐(0) 编辑