STL学习
anda0109
密码学与信息安全,区块链,高速网络,时序数据库,分布式数据库/存储,量子计算。
展开
-
STL顺序容器-deque(双向队列)
deque是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素比vector 更有效。实际上,deque 是对vector 和原创 2015-01-26 17:54:16 · 1058 阅读 · 0 评论 -
STL简介
C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如queues(队列), lists(链表), 和stacks(栈)等.C++ STL 提供给程序员以下三种标准容器类的实现:一、顺序性容器(Sequence containers)vector 从后面快速的插入与删除,直接访原创 2015-01-23 22:15:29 · 1233 阅读 · 0 评论 -
STL关联容器
set, multiset, map, multimap 是一种非线性的树结构,具体的说采用的是一种比较高效的特殊的平衡检索二叉树——红黑树结构。因为关联容器的这四种容器类都使用同一原理,所以他们核心的算法是一致的,但是它们在应用上又有一些差别,先描述一下它们之间的差别。set 又称集合,实际上就是一组元素的集合,但其中所包含的元素的值是唯一的,且是按一定顺序排列的,集合中的每原创 2015-02-02 21:54:37 · 997 阅读 · 0 评论 -
STL容器适配器
STL 中包含三种适配器:栈stack 、队列queue 和优先级priority_queue 。适配器是容器的接口,它本身不能直接保存元素,它保存元素的机制是调用另一种顺序容器去实现,即可以把适配器看作“它保存一个容器,这个容器再保存所有元素”。STL 中提供的三种适配器可以由某一种顺序容器去实现。默认下stack 和queue 基于deque 容器实现,priority_q原创 2015-02-02 21:59:04 · 881 阅读 · 0 评论 -
STL顺序容器-vector
vector是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组。在创建一个vector 后,它会自动在内存中分配一块连续的内存空间进行数据存储,初始的空间大小可以预先指定也可以由vector 默认指定,这个大小即capacity ()函数的返回值。当存储的数据超过分配的空间时vect原创 2015-01-23 22:20:29 · 900 阅读 · 0 评论 -
STL顺序容器-list
list是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有序的元素链接起来。由于其结构的原因,list 随机检索的性能非常的不好,因为它不像vector 那样直接找到元素的地址,而是要从头一个一个的顺序查找,这样目标元素越原创 2015-01-23 22:28:51 · 994 阅读 · 0 评论