C++STL常用函数操作大全

//1.头文件
#include <stack>

//2.声明
stack<int> s;		//声明栈内元素都是int类型一个栈s

//3.操作
s.push(1);		//在栈s顶插入元素1
s.pop();		//删除栈s的顶部元素
s.top();		//获取栈顶元素的值
s.size();		//求栈的大小
s.empty();		//判断栈是否为空

队列

//1.头文件
#include <queue>

//2.声明
queue<int> q;		//声明队列内元素都是int类型一个队列q

//3.操作
q.push(1);		//在队尾顶插入元素1
q.pop();		//删除队尾元素
q.front();		//获取队头元素的值
q.back();		//获取队尾元素的值
q.size();		//求队列大小
q.empty();		//判断队列是否为空

优先队列

//1.头文件
#include <queue>

//2.声明--默认为大顶堆
priority_queue<int> q;					//默认大顶堆
priority_queue<int, vector<int>, greater<int> > q;	//指定堆的类型为小顶堆
priority_queue<int, vector<int>, less<int> > q;		//指定堆的类型为大顶堆

//3.操作
q.push(1);		//在堆内插入元素1且仍保持堆的结构
q.pop();		//弹出堆顶元素
q.top();		//获取堆顶元素的值

pair

//1.头文件
#include <utility>

//2.声明
pair<string, int> p;		//声明第一个元素为string类型,第二个元素为int型的对

//3.操作
p.first;			//访问p的第1个元素
p.second;			//访问p的第2个元素

//pair支持比较操作,默认以first为第一关键字,second为第二关键字

vector容器

//1.头文件
#include <vector>

//2.声明
vector<int> vec;		//声明元素int型vector对象,该对象大小为0,容器内无任何元素
vector<int> vec(100);		//声明含有100个元素,初值为0的int型vector对象
vector<int> vec(100,2);		//声明含有100个元素,初值为2的int型vector对象

//3.操作
vec.push_back(1);			//在向量vec末尾插入元素1
vec.insert(vec.begin()+i,1);		//在第i个元素后面插入1(在下标为i的地方插入1,剩余元素后移)
vec.erase(vec.begin()+2);		//删除第三个元素(删除下标为2的元素)
vec.erase(vec.begin()+i,vec.begin()+j);	//删除下标i~j的元素
vec.size();				//求向量大小
vec.clear();				//清空向量

//4.访问vector中的元素
vec[i];					//使用下标访问元素(同数组)

//使用迭代器访问vector中的元素
vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
    cout<<*it<<endl;`

注:vector中的元素是结构体时,要将结构体定义为全局的,否则会出错。

map

map的本质是一棵红黑树

//1.头文件
#include <map>

//2.声明
map<string, int> m;		//声明关键字为string型,对应的值int型的对

//3.操作
m["aaa"]=1;			//字符串"aaa"的值为1

unordered_map

unordered_map的本质是哈希表

//1.头文件
#include <unordered_map>

//2.声明
unordered_map<string, int> m;		//声明关键字为string型,对应的值int型的对

//3.操作
m["aaa"]=1;			//字符串"aaa"的值为1
m.count("aaa");			//查询m中是否存在值为“aaa”的元素

字符串string

//1.头文件
#include <string>

//2.声明
string str;			//声明一个字符串str

//3.操作
str.insert(2,"abc");		//在下标为2的位置之前插入"abc"
str.erase(2);			//删除从下标2开始的之后的所有元素
str.erase(2,1);			//删除下标从2开始的一个的元素
str.find('A');			//从头查找字符'A',返回'A'在str中首次成功的位置,若失败,则返回-1

其它常用辅助函数

//头文件
#include <algorithm>

//1.sort排序
sort(a.begin(), a.end());

//2.reverse翻转数组
reverse(a.begin(), a.end());

//头文件
#include <cstring>

//3.memset数组初始化函数,将某一块内存全部填充为指定的值
memset(f, -1, sizeof(f));
posted @ 2021-04-11 15:26  菜菜ee  阅读(96)  评论(0)    收藏  举报