![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
文章平均质量分 85
流年llyz
这个作者很懒,什么都没留下…
展开
-
STL简介
resize()与reserve()原创 2023-11-11 15:48:19 · 203 阅读 · 1 评论 -
STL详解(一) 动态数组vector
一、Vectors介绍vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.1.文件包含:首先在程序开头处加上#include<vector>以包含所需要的类文件vector, 还有一定要加上using namespace std;...原创 2019-01-30 19:59:15 · 3093 阅读 · 0 评论 -
STL详解(二) 栈容器Stack
一、Stack简介stack 是容器适配器的一种。要使用 stack,必须包含头文件 <stack>。stack就是“栈”。栈是一种后进先出的元素序列,访问和删除都只能对栈顶的元素(即最后一个被加入栈的元素)进行,并且元素也只能被添加到栈顶。栈内的元素不能访问。如果一定要访问栈内的元素,只能将其上方的元素全部从栈中删除,使之变成栈顶元素才可以。容器适配器中的数据是以 LIF...原创 2019-02-11 17:16:27 · 3931 阅读 · 1 评论 -
STL详解(三) 队列容器queue
一、queue(队列)简介:队列也是一种逻辑数据结构,其具有先进先出的特性,只能在队的前端进行删除, 在队的后端进行插入。针对这种特性,可以实现一些较为复杂的逻辑。在实际应用中,部分程序也正需要这样一种顺序进出的数据处理方式。使用这样的逻辑处理方式,使得我们可以将更多精力放在如何处理顺序逻辑之外的事情,对于编程、开发来讲,提供了极大的方便。同stack类似,queue也可以看成是容器的容...原创 2019-02-13 19:53:16 · 17215 阅读 · 1 评论 -
STL详解(四) 优先对列容器priority queue
一、优先队列priority_queue简介 priority_queue(优先队列)允许用户为队列中元素设置优先级,放置元素的时候不是直接放到队尾,而是放置到比它优先级低的元素前面。priority_queue有三个模板参数:priority_queue<Type, Container, Functional>,其中后两个可以省略。Type :为数据类型...原创 2019-06-22 07:23:14 · 2908 阅读 · 1 评论 -
STL详解(五) 双端队列容器deque
一、deuqe简介1、deuqe概念 容器deque和vector非常相似,属于序列式容器。都是采用动态数组来管理元素,提供随机存取,并且有着和vector一样的接口。不同的是deque具有首尾两端进行快速插入、删除的能力。2、Deque结构 如图1是deque的逻辑结构,从表面上看,deque具有连续性的存储空间,并支持随机存取功能。实际上deque并...原创 2019-02-02 07:32:02 · 3076 阅读 · 1 评论 -
STL详解(六) 双向链表容器list
一、List 容器简介list是C++标准模版库(STL,Standard Template Library)中的部分内容。list容器实质是一个双向链表,可以高效地进行插入删除元素。list不提供随机访问功能,也就是不能用下标和at()访问,当删除其中一个元素,指向其他元素的迭代器依然有效。对于任何位置的元素插入或移除,list永远是常数时间List结构li...原创 2019-02-02 07:05:56 · 1438 阅读 · 0 评论 -
STL详解(七) 集合容器set
一、set简介C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树,pair封装二元结构体等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排...原创 2019-02-01 22:26:16 · 1206 阅读 · 0 评论 -
STL详解(八) 对组容器pair
一.解释: pair是STL中的模板类型,它可以存储两个元素,它也被称作“对组”。没有什么成员函数,源代码很简单。 pair 是“二元结构体”的替代品,将两个元素捆绑在一起,节省编码时间。相当于以下定义: struct pair{ typename1 first; typename2 second; } pair将一对值组合成一个值...原创 2019-02-06 08:31:38 · 588 阅读 · 0 评论 -
STL详解(九) 映射容器map
一、map简介 1、 什么是Map Map是STL的一个关联容器,翻译为映射,数组也是一种映射。如:int a[10] 是int 到 int的映射,而a[5]=25,是把5映射到25。数组总是将int类型映射到其他类型。这带来一个问题,有时候希望把string映射成一个int ,数组就不方便了,这时就可以使用map。map可以将任何基本类型(包括STL容器)...原创 2019-07-14 18:16:03 · 1171 阅读 · 1 评论 -
STL详解(十) 字符串string
使用场合:因为C风格字符串(以空字符结尾的字符数组)太过复杂难于掌握,不适合大程序的开发,所以C++标准库定义了一种string类,它不必担心内存是否足够及字符串长度,可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作,同时C++的算法库对string也有着很好的支持 ,而且string还和c语言的字符串之间有着良好的接口,因此现在编程中涉及到字符串的处理,就可以直接使用stri...原创 2018-11-27 11:00:16 · 3693 阅读 · 0 评论 -
STL 详解(十一)sort函数
做项目的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。Sort函数有三个参数:(1)第一个是要排序的数组的起始地址。(2)第二个是结束的地址(最后一位要排序的地址)(3)第三个参数是排序的方法,可以是从大到小也可是...原创 2019-02-08 09:26:49 · 1445 阅读 · 0 评论 -
STL章节练习答案
一、vector(动态数组)二、stack(栈)1、表达式括号匹配#include<bits/stdc++.h>using namespace std;int main(){ char a; stack <char> st; do { a=getchar(); if(a=='(' ) st.push(a); ...原创 2020-08-31 10:06:59 · 477 阅读 · 0 评论