C++语法STL语法
常用STL结构
一些常用的STL可以帮我们直接实现数据结构,让算法更容易实现。
-
vector——向量、数组 -
pair——元组 -
queue——队列 -
stack——栈 -
priority_queue——优先队列 -
unordered_map——哈希表(相比map查找更快一些) -
map——字典 -
set——集合
STL用法总结
STL的引入
#include<vecotr>
#include<queue>
#include<stack>
#include<priority_queue>
#include<unorder_map>
#include<set>
vector向量、数组
vector的定义
vector<int> a;
vector<long long> a;
vector<string> a;
vector<double> a;
// ......
vector常用方法
vector<int> a;
a.push_back(1); //往vector里面放数字,相当于python的append
a.size(); //获取vector的元素个数
a.pop_back(); //删除尾元素
a[index]; //获取下表为index的元素
pair元组
pair的定义
const int N = 1e5 + 10;
pair<int, int> a[N];
pair<int, string> a[N];
// ......
pair的使用
a[index].first; //获取下标为index的第一个元素
a[index].second; //获取下标为index的第二个元素
// 赋值即可
queue队列
queue的定义
queue<int> q;
queue<long long> q;
queue<double> q;
queue常用方法
queue<int> q;
q.push(1); //在队尾插入一个元素
q.pop(); //删除对头、不返回值
q.size(); //返回队列中元素个数
q.empty(); //如果为空范围true,不空返回false
q.front(); //返回对头元素
stack栈
stack的定义
stack<int> s;
stack<string> s;
stack常用方法
stack<int> s;
s.push(); //元素入栈
s.top(); //返回栈顶元素
s.pop(); //弹出栈顶元素
s.size(); //返回栈的长度
s.empty(); //是否为空
priority_queue优先队列,会排序
priority_queue的定义
priority_queue<int> q;
priority_queue常用方法
q.push(1); //元素入列
q.top(); //对头元素
q.pop(); //元素出列
unorder_map哈希表——使用查找频率高,几乎O(1)!
unordered_map的定义
unordered_map<int, string> m;
// 前面的int 是 key、string 是value
unordered_map使用
unordered_map<string, int> m;
m['num1'] = 1;
string n = "cch";
int k = 123;
m[n] = k;
map字典
map的定义
unorder_map<int, string> m;
// 前面的int 是 key、string 是value
map使用
unorder_map<string, int> m;
m['num1'] = 1;
string n = "cch";
int k = 123;
m[n] = k;
set集合
set的定义
set<int> s;
set常用方法
s.begin() //返回set容器的第一个元素
s.end() //返回set容器的最后一个元素
s.clear() //删除set容器中的所有的元素
s.empty() //判断set容器是否为空
s.size() //返回当前set容器中的元素个数

浙公网安备 33010602011771号