当前位置: 首页 > news >正文

常用stl

1.vector(向量)

vector(n);
vector a(n,vector(n) );//n行n列
vector a(n,vector() );//n行,不指定列数

大小:int n=v.size();
尾部加入:v.push_back();
尾部删除:v.pop_back();
随机插入:v.insert(v.begin()+2,id);//v[2]=id,原位置的依次往后挪
随机删除:v.erase(v.begin()+1,v.begin()+3);//左闭右开,删除v[1]v[2]

2.stack
stack st;

大小:int n=st.size();
栈顶加入:st.push(1);
栈顶弹出:st.pop();
取栈顶:int w=st.top();

3.queue
queue q;

大小:int n=q.size();
队尾加入:q.push(1);
队首弹出:q.pop();
取队首:int f=q.front();
取队尾;int w=q.back();

4.deque(双端队列 首尾都可插入删除)
deque q;

大小:int n=q.size();
首尾插入:q.push_front()/q.push_back();
首尾弹出:q.pop_front()/q.pop_back();
取队首:int f=q.front();
取队尾;int w=q.back();

5.priority_queue(优先队列)
priority_queue q;//从大到小
priority_queue<int,vector,greater> q;//从小到大
priority_queue<pair> q;//先按first排序,再按second排序

大小:int n=q.size();
插入:q.push(1);
队首弹出:q.pop();
取队首:int f=q.top();

6.map(映射)
map<int,int> mp;
(容器中的每个存储对为一个键值对,
map会按照键的顺序从小到大自动排序)

大小:int n=mp.size();
遍历:for(auto [a,b]:mp)

7.set(集合)
set s;(自动从小到大排序)

大小:int n=s.size();
插入:s.insert(1);
删除:s.erase(1);
是否存在:int ok=s.count(1);
遍历:for(auto k:s)

8.string
string s;
cin>>s;//读入字符串,遇空格,回车结束
getline(cin,s);//读入字符串(包括空格),遇回车结束
注意: 若前面已有输入(如cin>>n),getline(cin, s)会获取前一个输入的换行符,需要在前面添加读取换行符的语句,如:getchar()。

大小:int n=s.size();
尾部插入:char c='a'; string a="abc"; s+=c; s+=a;
随机插入:s.insert(s.begin()+2,'w');//类似于vector
随机删除:s.erase(s.begin()+1,s.begin()+3);//类似于vector
查找:int id=s.find("abc");//返回首次出现位置的下标,若不存在返回一个大数
子串截取:string str=s.substr(0,1);//参数是下标,不是迭代器!从0开始长为1。

9.函数
sort(a.begin(),a.end(),cmp);//cmp函数参数最好加上引用&,加快速度。
reverse(a.begin(),a.end());//可翻转数组,向量,字符串。
string s=to_string(n);//数字n转成字符串。
二分函数://s是vector或者string
int w=lower_bound(s.begin(),s.end(),4)-s.begin();
//目标索引减去初始索引即下标
set自带二分查找:set.upper_bound(1)返回的也是迭代器,但不支持像上面的加减,无法获取具体索引。

http://www.jsqmd.com/news/412623/

相关文章:

  • 物理世界的几何建构:论统一场论的本体论革命与概念生成
  • B3-418
  • Colo 用户配置 VPC Peering 接入 RapidNet
  • 学术写作新选择:8大AI目录生成工具横评,自动同步优化体验
  • Radware CloudWAF 延迟测试报告
  • 智能论文写作工具:9款目录生成软件功能全解析。
  • QA之二 - 单元测试-- JUnit5 + Mockito
  • Nomad组件部署vector-job
  • CEX-ME 技术架构与韧性
  • 学术研究必备:8款智能目录生成工具横向评测,实时同步提升效率
  • AWS WAF 和 Network Firewall 对实时交易行 API 延迟的影响测试
  • 论文目录生成神器:8款AI工具深度对比,一键同步解放写作压力
  • 高效论文写作:8款自动目录生成工具评测,智能同步简化流程
  • LuatOS核心库API——【ioqueue】IO序列化操作
  • 1-408
  • 开发日志9
  • 9款自动目录生成工具助你轻松完成论文排版。
  • 第4章,[标签 Win32] :综合案例,SysMets1
  • 全球实时交易系统BN API ——网络架构探测
  • LuatOS核心库API——【iotauth 】 IOT 鉴权库
  • LuatOS核心库API——【iperf 】吞吐量测试
  • 论文写作利器:8大AI目录生成工具测评,自动更新告别手动调整
  • P8277 [USACO22OPEN] Up Down Subsequence P 题解
  • Colo 环境服务器的操作指南
  • LuatOS核心库API——【json 】json 生成和解析库
  • SRE 应用稳定性看板-从应用健康/业务系统维度的评分系统
  • AI辅助企业战略制定:竞争态势分析与机会识别
  • AI论文工具排行榜:十大写作与文本重构解决方案详解
  • 论文写作利器:9款自动目录生成工具详解及实时更新功能。
  • 基于STM32实现OTABootLoader 第三章——构建BootLoader程序