C++ STL常见数据结构(容器)分类】的更多相关文章

vector:(连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,可能重新分配更大空间,拷贝的性能开销较高. deque:(小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[],只是速度没有vector快)快速的访问随机的元素,快速的在开始和末尾插入元素,但随机的插入,删除元素要慢,空间的重新分配要比vector快,重新分配空间后,原有的元素不需要拷贝.对…
根据序列在容器中的排列特性,将常见数据结构分为:序列式容器和关联式容器. 常见序列式容器有 1.array(build-in)c++內建 2.vector 3.heap(以算法方式呈现) 4.priority-queue(优先级队列) 5.list 6.slist 7.deque 8.adapter: stack queue 最主要的:vector deque(queue,stack) heap(priority-queue(逻辑上是一个queue,但底层是采用heap)) list…
本质上算法都是对数据的操作,没有数据,没有存储数据的容器和组织方式,算法就是无源之水无本之木,就是巧妇也难为无米之炊.算法是演员,变量.数组.容器等就是舞台, 然后整个算法的处理流程,都是针对这些数据(存储在变量或者 STL 中的容器中)进行初始化,修改,更新的,算法的结束也是对这些数据进行判断:(算法实现过程中的数据,相当于面向对象编程中的成员变量),数据居于中心位置: 1. 旅行商问题 结点(城市)间的邻接关系与权重 ⇒ 邻接矩阵 int dst[100][100];(二维数组,如果没有更复…
一.容器概述与分类 1. STL容器即是将运用最广的一些数据结构实现出来.常用的数据结构有array, list, tree, stack, queue, hash table, set, map……等等.根据“数据在容器中的排列”特性,这些数据结构分为序列式和关联式两种.本篇讨论序列式容器. 这里所谓的衍生,并非派生关系,而是内含关系.例如heap内含一个vector,priority-queue内含一个heap,stack和queue都内含一个deque,set/map/multiset/m…
1.什么是标准模板库(STL)? (1)C++标准模板库与C++标准库的关系 C++标准模板库其实属于C++标准库的一部分,C++标准模板库主要是定义了标准模板的定义与声明,而这些模板主要都是 类模板,我们可以调用这些模板来定义一个具体的类:与之前的自己手动创建一个函数模版或者是类模板不一样,我们使用了 STL就不用自己来创建模板了,这些模板都定义在标准模板库中,我们只需要学会怎么使用这些类模板来定义一个具体的类, 然后能够使用类提供的各种方法来处理数据. (2)STL六大组件:容器(conta…
常见数据结构及算法 数据结构主要用来组织数据,也作为数据的容器,载体. 各种各样的算法,都需要使用一定的数据结构来组织数据. 常见的典型数据结构有: 链表 栈和队列 树 图 上述可以延伸出各种各样的术语和结构,如列表,集合,哈希表,堆,优先队列,二叉树,红黑树,B+树以及各种变种等. 我们区别开数据结构和算法,是因为算法是更高层次的一种智慧结晶,目的就是为了解决问题,基本的算法分类有: 排序算法 查找算法 图相关的算法 其他的算法 计算机科学作为数学的一个分支,大部分的数学知识都是离散数学.我们…
C++内置了数组的类型,在使用数组的时候,必须指定数组的长度,一旦配置了就不能改变了,通常我们的做法是:尽量配置一个大的空间,以免不够用,这样做的缺点是比较浪费空间,预估空间不当会引起很多不便. STL实现了一个Vector容器,该容器就是来改善数组的缺点.vector是一个动态空间,随着元素的加入,它的内部机制会自行扩充以容纳新元素.因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助,再也不必因为害怕空间不足而一开始就配置一个大容量数组了,vector是用多少就分配多少. 要…
STL中的容器主要包括序列容器.关联容器.无序关联容器等. 一]序列容器 (1) vector vector 是数组的一种类表示,提供自动管理内存的功能,除非其他类型容器有更好满足程序的要求,否则,我们 应默认使用这中容器. (2) deque deque 表示双端队列,在STL中,其实现类似于vector,支持随机访问.主要区别在于使用deque在开始位置插入和删除元素的时间 是固定的,所以如果多数操作发生在序列的起始和结尾处,应考虑使用deque结构. (3) list list表示双向链表…
STL序列式容器学习总结 参考资料:<STL源码剖析> 参考网址: Vector: http://www.cnblogs.com/zhonghuasong/p/5975979.html List: http://www.cnblogs.com/scandy-yuan/archive/2013/01/08/2851324.html Deque: http://blog.csdn.net/longshengguoji/article/details/8519812 1.Array array是C+…
参考文章:http://blog.csdn.net/qq_23100787/article/details/51388163 迭代器这种东西,就是为了使访问简单!! 容器::iterator iter; for(iter= 容器.begin();iter!=容器.end();iter++){ cout<<*iter或者是 iter->first等等之类的                                    //迭代器就是这么个套路 } 然后就是set,set就是一个集合…