首页 > 其他分享 >STL常用基础模板

STL常用基础模板

时间:2022-09-19 20:24:50浏览次数:65  
标签:常用 头文件 STL 复杂度 元素 list vector include 模板

STL模板:

头文件:#include<queue>
大根堆:priority_queue<int> q;
小根堆:priority_queue<int,vector<int>,greater<int> > q;
操作:

q.top()//取得堆顶元素,并不会弹出
q.pop()//弹出堆顶元素
q.push()//往堆里面插入一个元素
q.empty()//查询堆是否为空,为空则返回1否则返回0
q.size()//查询堆内元素数量

队列

头文件:#include<queue>
定义:queue<typename> name;//queue<数据类型> q;
操作:

q.front()//访问队头元素
q.back()//访问队尾元素
q.push()//插入元素
q.pop()//弹出元素
q.empty()//询问队列是否为空
q.size()//询问队列元素个数

头文件:#include<stack>
定义:stack<typename> name;
操作:

push()//入栈
top()//取栈顶
pop()//出栈,弹出栈顶元素
empty()//检测stack是否为空,返回true则空,false则非空
size()//返回stack内元素的个数

双向链表list

头文件:#include<list>
定义: list<typename> name;
操作:

list<int>a(n) //声明一个n个元素的列表,每个元素都是0
list<int>a(n, m) //声明一个n个元素的列表,每个元素都是m
list<int>a(first, last) //声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素,first和last是迭代器
list<int>b{1, 2, 3, 4};
b.resize(2);
list中输出元素:1,2
list<int>b{1, 2, 3, 4};
b.resize(6);
list中输出元素:1,2,3,4,0,0
list<int>b{1, 2, 3, 4};
b.resize(6,9);
list中输出元素:1,2,3,4,9,9

向量(vector)

头文件: #include<vector>
定义:

vector<int> ve1;
vector<int> ve2(7);//定义大小,int默认初始化是0
vector<int> ve3(10,1);//大小10 + 初始1

操作:

push_back():在vector后面添加一个元素x,时间复杂度为o(1)。
pop_back():删除vector的尾元素,时间复杂度为o(1)。
size():获得vector中元素的个数,时间复杂度为o(1)。
clear():用来清空vector中的所有元素,时间复杂度为o(N)。
insert():insert(it, x)用来向vector的任意迭代器it(这是一个指针变量)处插入一个元素x,时间复杂度为o(N)。
erase():它有两种用法:
删除单个元素,erase(it)即删除迭代器为it处的元素;
删除一段区间内的所有元素,erase(first, last)即删除[first, last)的所有元素,参数也是指针变量。

标签:常用,头文件,STL,复杂度,元素,list,vector,include,模板
From: https://www.cnblogs.com/DAIANZE/p/16708923.html

相关文章

  • 算法通用模板讲解
    作用:1.作论文—数据—程序进行实现;2.程序多种多样,需要一个通用的模板;3.关键:通用的地方是什么?4.算法之间的共同点与不同点; 算法的模板:1.参数设置:(1......
  • 洛谷P3372【模板】线段树1
    #include<bits/stdc++.h>usingnamespacestd;constintN=1e6+5;intn,m,a[N];intadd[N*4];//账本longlongsum[N*4];//a[k]的区间和voidbuild(intk,intl,i......
  • 常用linux命令
    1.系统相关uname-a显示当前系统相关信息sudo临时获取超级用户权限suroot切换root用户sudoshutdown关机sudoreboot重启sudonautilus进入有root权限......
  • 【VSCode】前端常用插件
    1、别名路径跳转插件名称:别名路径跳转配置说明:下载后只需自定义配置一些自己常用的别名路径即可场景:2、路径别名智能提示插件名称:path-alias场景:3、自动重命名标签......
  • python读写文件模板记录
    目录读写模式读文件read(可选:size)一次性读全部内容readline()读取一行内容readlines()读取所有内容,返回列表从file中读取每行等同于readlines()的功能写......
  • Redis入门讲解(介绍、安装、常用命令)
    Redis入门讲解(介绍、安装、常用命令)Redis是非关系型数据库关系型数据库关系型数据库是采用了关系模型来组织数据的数据库,以行和列的形式存储数据,由二维表及其之间的关......
  • 常用快捷键、命令
    快捷指令ctrl+c:复制ctrl+v:粘贴ctrl+a:全选ctrl+x:剪切ctrl+z:撤销ctrl+s:保存alt+F4:关闭窗口 打开cmd的方式开始+Windows系统+找到命令提示符win键+R......
  • Linux常用命令
    1系统信息date:显示系统日期date091816152022.00:设置时间月日时分年.秒2关机shutdown-hnow:立即关机shutdown-rnow:立即重启reboot:重启shutdown-hhours:m......
  • 工具 | 常用 MySQL 内核 Debug 技巧
    工具|常用MySQL内核Debug技巧掌握MySQL内核源码的阅读和调试能力,不仅是数据库研发人员的日常,也是DBA进阶的必经之路。阅读本文你将了解:如何准备MySQL调试......
  • git常用命令
    gitinit    初始化一个空仓库 / 创建空仓库gitadd.  代码提交到暂存区gitcommit-m'提交名'  提交到本地git仓库gitremoteaddorigin'仓库地......