STL常用基础模板

H0ndomach1·2022-09-19 20:16·91 次阅读

STL常用基础模板

STL模板:

数据结构#

#

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

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

队列#

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

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

#

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

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

双向链表list#

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

Copy
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>
定义:

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

操作:

Copy
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)的所有元素,参数也是指针变量。

常用函数#

Copy
reverse(z+1,z+n+1);//翻转z[1]~z[n] sort(z+1,z+n+1);//z数组排序 int m=unique(z+1,z+n+1)-z-1;//对z去重,需要提前排序 int x=lower_bound (z+l,z+n+1,r)—z;//z[1]-z[n]中>=r的数第一次在哪里出现 int y=upper_bound (z+1,z+n+1,r)-z;//z[1]-z[n]中>r的数字第一次在哪里出现 random_shuffle(z+1,z+n+1);//随机打乱z[1]~z[n]

排列函数

posted @   DAIANZE  阅读(91)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示
目录