AKSZ-stl容器
2024-07-12 17:36:05
发布于:广东
AKSZ-stl容器
子串(连续的)和子序列(不一定连续)
表达式(前缀,中缀,后缀)
1.前缀表达式->符号在数字前 (+1,-1)
2.中缀表达式->符号在数字中间 (1+1, 1-1)
3.后缀表达式->符号在数字后 (1-, 2-)
###中缀转后(前)缀:
82+3*(20-8)/2
1.根据运算优先级打括号
(82+((3*(20-8))/2))
2.将括号内运算符挪到对应括号后(前)
(82((3(20 8)-)*2)/)+
3.去掉所有括号
82 3 20 8 - * 2 / +
##vector(动态数组)
//定义
vector<int> v;
vector<int> v(n,value)//定义n个vector,初始化为value
迭代器auto(类似指针)
auto it=s.lower_bound(2);//返回第一个大于等于2的元素的下标
cout<<(*it)<<endl;
迭代器常用操作
1.begin() : 指向容器第一个元素的迭代器
2.end(): 指向容器尾部的下一个位置的迭代器
3.++ : 将迭代器指向下一个位置
4.*: 获取迭代器指向元素
集合set(唯一,升序)
set<int> se;//定义set
set<int>::iterator it;//定义set迭代器
set常用函数
s.size()
s.insert(x)//插入x
s.erase(x)//删除等于x的所有元素
s.find(x)//查找x,存在返回该元素的迭代器,否则返回end()
s.empty()//判断容器是否为空
s.count(x)//判断是否存在x,1在0不在
s.lower_bound(s.begin(),s.end(),x)//返回第一个大于x的元素的下标
map
定义map迭代器:map<string,int>::iterator it;
map<string,int>::iterator it;
mp[1]="apple"
常用方法
1.mp.size()//输出有多少元素
2.mp.erase(x)//删除键为x的所有元素
3.mp.find(x)//查找集合中等于x的元素,存在x返回该元素迭代器,否则返回end()
4.mp.empty()//常看当前容器是个否为空
multiset(可重集)
include<bits/stdc++.h>
using namespace std;
multiset<int>s;
int main(){
s.insert(1);
s.insert(1);
s.insert(2);
s.insert(2);
s.insert(2);
cout<<s.size()<<endl;
for(auto i:s){
cout<<i<<endl;
}
cout<<s.count(2)<<endl;
return 0;
}
unordered_map(无序集)
双端队列(deque)
如何定义:deque<类型>q;
取对头:q.front()
取对位:q.back()
加对头:q.push_front()
加对尾:q.push_back()
删对头:q.pop_front()
删对位:q.pop_back()
这里空空如也
有帮助,赞一个