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

备战蓝桥杯---数据结构与STL应用(基础3)

今天我们主要介绍的是pair,string,set,map

pair:我们可以把它当作一个结构体:

void solve(){pair<int int> a;//创建a=make_pair(1,2);//添加元素cout<<a.first<<endl<<a.second<<endl;}//输出

当然,它也可以嵌套(注意,两个尖括号不能连在一起,否则会当作右移:

void solve(){pair<int pair<int,int> > a;}

string:字符串

接下来是他的创建与初始化:

void solve(){string s;//创建string s1("123456");//生成123456string s2("1234",0,3);//从0位置开始,长度为3string s3("123456",5);//长度为5string s4(5,'2');//构造5个2连起来的字符串string s5=(s1,2);//从s1中截取从第3个元素到最后
}

注意,1.string是可以用<,><=,>=进行比较的,并可以用+进行拼接。

        2.s=s+'2'的复杂度为n,s+='2';的复杂度为1.

下面是它的函数方法:

s.size()/s.length()返回字符个数
s.push_back()末尾插入一个字符
s.insert(pos,e)在pos位置插入字符
s.append(str)字符串结尾添加字符串
erase(iterator p)删除所指字符
erase(iterator first,iterator last)删除[first,last)
erase(pos,len)删除从pos开始的len个字符
clear()删除所有字符
s.substr(pos,n)截取从pos开始的n个字符

s.find(str/c,pos)从pos开始(默认为0)找str/c,找到返回位置索引,否则-1

set:集合,里面的元素不重复,有序

初始化定义:set<int> s;

函数方法:

s.begin()返回第一个元素地址
s.end()返回最后一个元素的下一个地址
s.clear()删除其所有元素
s.empty()判断是否为空
s.insert()插入一个元素
s.size()返回元素个数
erase(key_value)删除键值key_value的值
s.find()查找某一元素
s.count()查询某一元素是否出现

map:每个键对应一个值,类似于python中的字典

赋值:map[0]={1,1};

下面是它的函数方法:

mp.find(key)返回键为key的迭代器,不存在返回mp.end()
mp.erase(it)消除迭代器对应的键与值
mp.erase(key)根据键删除键与值
mp.size()返回映射的对数
mp.clear()清空元素
mp.insert()插入元素
mp.begin()返回第一个元素地址
mp.end()返回最后一个元素的下一个地址
mp.count(key)存在返回1,否则0

下面介绍几种比较有用的STL函数:

stoi

atoi(const char*)//用于把字符串化为整形:“1234”------》1234(默认在int范围)

atoi则不会检查,超出上界输出上界

iota

让序列递增赋值:

vector <int> a(10)

iota(a.begin(),a.end(),0);

则10个元素为0 1 2 3 4 5 6 7 8 9

max/min

可以用来多个元素的最大最小值

max({a,b,c,d})

reverse

reverse(beg,end)//对序列反转(可以是字符串,也可以是数组)

http://www.lryc.cn/news/290766.html

相关文章:

  • 「优选算法刷题」:只出现一次的数字Ⅲ
  • Vue-43、Vue中组件自定义事件
  • GitHub 开启 2FA 双重身份验证的方法
  • ASP.NET Core 过滤器 使用依赖项注入
  • 2024年的网创之路应该这样走才对
  • ssh异常报错:Did not receive identification string from
  • MIDI码深度解析
  • 小红书如何做混部?
  • [PHP]严格类型
  • 作为程序员,你必须学会Maven
  • UDF学习(三)数据访问宏
  • Web3技术革新:重新定义在线体验
  • 从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
  • nvm 工具使用介绍
  • Shell 入门_1
  • 力扣hot100 柱状图中最大的矩形 单调栈
  • 018 用户交互Scanner
  • 华为HCIE课堂笔记第十七章 广域网互联技术
  • 代码随想录算法训练营第17天(二叉树5)| 找树左下角的值二叉树的路径总和从中序与后序遍历序列构造二叉树从前序与中序遍历序列构造二叉树
  • 代码随想录 Leetcode106. 从中序与后序遍历序列构造二叉树
  • Log4j Log4j2
  • C语言——如何进行文件操作
  • python中for循环的几个现象
  • openssl3.2 - 测试程序的学习 - 准备openssl测试专用工程的模板
  • Delphi.cz采访​Embarcadero​捷克共和国办事处经理:理查德·库巴特 - 第一部分
  • AI投资或成科技裁员罪魁祸首
  • 解读BEVFormer,新一代自动驾驶视觉工作的基石
  • 【React教程】(1) React简介、React核心概念、React初始化
  • 云计算中的弹性是什么?
  • Vue3基础:pnpm是什么?npm和pnpm的区别?如何使用pnpm?