首页 > 其他分享 >STL标准库使用指南

STL标准库使用指南

时间:2022-11-20 23:57:54浏览次数:38  
标签:map set string STL st 标准 字符串 使用指南

不管是在CSP还是在NOI的考场上,STL都是一个非常好使的东西(deque受害者别喷我QWQ)。

所以熟练掌握STL的使用能让你在考场上轻松很多。

基础

queue stack priority_queue 这几个属于非常基础的东西了。

他们分别是队列。栈和堆(注意是大根堆)。

大根堆转成小根堆可以这么写:

priority_queue<int,vector<int>,greater<int> > q;

当然,你也可以用他们维护自定义变量,但是要把自定义变量先重载运算符。

他们的装入和弹出操作都是 pushpop

使用方法:q.push(x)q.pop()

调用首元素的方法不一样:

队列: q.front()

栈: s.top()

堆: q.top()

还有一些我感觉没啥用的东西例如:list heap(链表,堆)。

感兴趣可以自己学一下。

string 是个神奇的东西,这个东西里封装了很多有用的函数。

substr

作用:把字符串的一部分截取出来并返回这个字符串。

两种使用方法:

(1)s.substr(i) 指从位置 \(i\) 开始截取到字符串的最后一个字符。

(2)s.substr(i,j) 指从位置 \(i\) 开始,截取 \(j\) 个字符。

find

作用:在文本串中寻早是否存在一个模式串,如果有,返回下标,否则返回 \(-1\)。

使用方法:

s.find(t) s和t都是字符串。

delete

把两个字符串拼接起来:

string x,y;
cin>>x>>y;
string t=x+y;

这样就把y拼在了x后面。

中级

map vector set

map 又名映射,顾名思义,就是A映射B,这个A可以是string,可以是int,可以是long long,但这个东西需要有优先级,B随便,只要不是数组啥都行,甚至可以是另一个map。

map 的实现是用红黑树实现的,他封装好了,所以所有操作都是log次的

定义方法:

map<int,int>

使用方法:

1.映射

map[x]++ 指将 \(x\) 所映射的变量 \(+1\)。

set 就是集合,当然,是不可重集。这东西就是平衡树,可是比手写的平衡树少了些东西(维护的东西是需要有优先级的)。

定义方法:

set<int>

  1. insert 操作

就是往集合里插入一个元素。

使用方法:

set<int,int> st;
int x;
cin>>x;
st.insert(x);

将 \(x\) 插入集合st中。

  1. erase

就是把 \(x\) 从集合中删除,并返回删掉了多少个元素。

st.erase(x);

将 \(x\) 从集合中删除。

当然也可以删除迭代器

标签:map,set,string,STL,st,标准,字符串,使用指南
From: https://www.cnblogs.com/Y2y7m/p/16910065.html

相关文章

  • C语言标准ISO9899的各个版本
    C90ISO/IEC9899:1990219PagesISO/IEC9899:1990/AMD1:199551PagesISO/IEC9899:1990/COR1:19948PagesISO/IEC9899:1990/COR2:19961PagesC99ISO/IEC9899:......
  • stl: rope(块状链表)
    今天比赛中看到的一个挺简单的东西,除了常数大,别的都挺好的#include<ext/rope>//头文件usingnamespace__gnu_cxx;//注意名称空间rope<int>rp;intmain(){......
  • BurpSuite使用指南-使用Burp Spider
    使用BurpSpider存在于BurpTarget中的站点信息,我们可以直接传送到BurpSpider中进行站点信息的爬取新版本是没有单独的spider功能新建一个扫描任务输入扫描的网址选择快速......
  • <四>理解空间配置器allocator, 优化STL 中的Vector
    .在上一节我们实现的MyVector存在哪些问题?问题1现在有Student类classStudent{public:Student(){cout<<"构造Student对象"<<endl;}~Student(){cout<<"析......
  • C++ STL简介
     vector,变长数组,倍增的思想size()返回元素个数empty()返回是否为空clear()清空front()/back()push_back()/pop_back()begin()/en......
  • zblogphp GetPostList()与GetArticleList()的区别
    GetArticleList()与 GetPostList()获取文章列表的逻辑大差不差,区别在于:GetArticleList()只会查询 log_Type=0的文章,也就是只查询post_type=0的文章,返回的列表全是\P......
  • <三>使用类模板实现STL Vector
    使用类模板实现STLVector,点击查看代码#include<iostream>usingnamespacestd;template<typenameT>classMyVector{public://构造函数MyVector<T>(intsi......
  • ECMAScript客户端脚本语言的标准 注释 数据类型
    1基本语法:1,与html结合方式  1,内部js  定义<script>,标签内容就算js代码2,外部JS定义<script>,通过src属性引入外部的js......
  • mysql将周转换成标准的日期格式区间
    周转换成标准的格式区间selectds,WEEKDAY(ds),emp坐席互聊组数/emp坐席沟通组数as互聊率,客户发送会话量/客户沟通数as客户日均发送会话量--concat(DATE_AD......
  • mysql将周转换成标准的日期格式区间
    周转换成标准的格式区间selectds,WEEKDAY(ds),emp坐席互聊组数/emp坐席沟通组数as互聊率,客户发送会话量/客户沟通数as客户日均发送会话量--concat(DATE_AD......