ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

STL常用函数(我这个新手认为的)

2021-01-27 19:06:01  阅读:186  来源: 互联网

标签:返回 pq last 函数 STL s1 元素 新手 first


以后再完善这个博客

一、vector(vector< type >v)

v.push_back(type num);//在末尾添加num

v.pop_back();//删除末尾元素

v.size();//获取v中元素个数

v.resize(type num)把v的长度设定为n个元素(不会初始化长度内的已有元素)

v.empty();//判断v是否为空,空返回1,非空0

v.clear()//清空,size变为0

v.insert(iterator it,type num)//在it指向元素前插入一个元素

v.erase(iterator it)//删除迭代器指向元素

v.front()//返回首元素的引用

v.back()//返回尾元素的引用

v.begin()返回指向首元素的迭代器

v.end()返回尾迭代器

二、string(s)

(非函数部分)
s1=s2//将s2字符串赋给s1
s1==s2、s1!=s2、s1<s2…//比较两字符串
s1=s1+s2、s1+=s2//将s2连到s1后面

(函数部分)
cin>>s1不能输入空格,用getline(cin,s1)可以输入
s[n]返回字符串中下标为n的字符//同数组的a[n]一样
s.substr(p,n)返回从s的下标p开始的n个字符组成的字符串
s.length()返回字符串长度
s.empty()判断s是否为空,空返回1,非空放回0
//下面几个函数好像可以写几种形参,就不乱写了
s.erase()
s.insert()
s.insert()
s.replace()
s.find()
s.rfind()

三、queue(queue< type>q)

(queue只能在容器末尾添加元素,在头部移出元素)
q.push(元素)//末尾添加
q.pop()//头部出队
q.front()//获取头部元素
q.size()//获取q中元素个数
q.empty()//判断q是否为空,空1非0

四、优先队列priority_queue(priority_queue<Type,Container,Functional>pq//数据类型,容器(默认vector),比较函数(默认求大值)(可以自己定义)(如果是结构体类型,要自己重载一个比较运算符)//type可以比较时后两个可以省去后面两个参数)

pq.push(item)//在pq中添加元素
pq.top()//获取pq中最大的元素
pq.pop()//使最大元素出队
pq.size()//获取pq中元素个数
pq.empty()//老empty了

五、set(集合)

六、map(映射)

七、bitset(二进制有序集)

八、max(val1,val2)返回更大的值

九、min(val1,val2)返回小值

十、swap(type,type)交换值,类型可以是值也可以是容器

十一、sort(first,last,compare)//快排

first为起始位置,用指针或迭代器
last
compare为比较方式,省略则默认升序,如果排序结构体,必须compar
时间为O(nlogn)

十二、去重函数unique(first,last)

移除区间内的重复项
[first,last]范围内的值必须有序
返回最后一个元素的迭代器

十三、二分函数

lower_bound(first,last,value)
upper_bound(first,last,value)

value为查找的值
lower返回的是序列中第一个大于等于value的元素的位置,时间为O(logn)
upper返回的是
[first,last]内必须有序,如果找不到就返回last

十四、next_permutation(first,last)

用于求序列[first,last]元素全排列中一个排序的下一个排序

标签:返回,pq,last,函数,STL,s1,元素,新手,first
来源: https://blog.csdn.net/qq_51955445/article/details/113251611

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有