STL
孙智荣
这个作者很懒,什么都没留下…
展开
-
STL之三:队列和queue,优先队列和priority_queue
队列是基本的数据结构之一,特点是“先进先出”。 头文件:#include<queue> 队列的有关操作如下: queue<Type> q; //定义队列,Type为数据类型 q.push(item); //把item放入队列 q.front(); //返回队首元素,但不会删除 q.pop(); //删除队首元素 q.back(); //返回队尾元素 q.s...原创 2019-08-08 09:58:36 · 214 阅读 · 0 评论 -
STL之四:链表和list
STL的list是数据结构的双向链表,他的内存空间可以是不连续的,通过指针来进行数据的访问,它可以高效率的在任意地方删除和插入,插入和删除的时间复杂度都是O(1)。 vector:插入和删除操作少,随机访问元素频繁。 list:插入和删除频繁,随机访问较少。 在vector插入一个元素之后,这个元素后面的地址全部会改变,而list不会,地址不会连续。 由于地址不是连续的,所以当用迭代器访问...原创 2019-08-08 11:33:39 · 182 阅读 · 0 评论 -
STL之五:set和map
set set就是集合。STL的set用二叉搜索树实现,集合中每个元素只出现一次,并且是排好序的。访问元素的时间复杂度是O()。 set和map在竞赛中应用广泛,特别是需要使用二叉搜索树处理数据的题目,用set和map可以极大地简化代码。 set的有关操作 set<Type> a; //定义Type类型的set,a a.insert(item); //把item放入se...原创 2019-08-08 15:33:20 · 420 阅读 · 0 评论 -
STL之二:栈和stack
栈是基本的数据结构之一,特点是“先进后出”。 头文件:#include<stack> 下面列举一些栈的有关操作: stack<Type> s; //定义栈,Type为数据类型 s.push(item); //把item放进栈顶 s.top(); //返回栈顶的元素,但不会删除 s.pop(); //删除栈顶的元素,但不会返回,在出栈的时候要进行两部操作 ...原创 2019-08-07 20:35:19 · 2585 阅读 · 0 评论 -
STL之一:vector
1、定义 vector是STL的动态数组,在运行时能根据需要改变数组大小,内存空间是连续的,vector容器是一个模板类,能存放任何类型的对象。 vector<int> a; //默认初始化,a为空 vector<int> b(a); //用a定义b vector<int> a(100); //a有100个值为0的元素 vector<int> ...原创 2019-08-06 21:08:37 · 209 阅读 · 0 评论