【pat】C++之刷题常用STL容器整理

本文整理了C++中常用于PAT刷题的STL容器,包括vector、set、string、map、queue、priority_queue、stack和pair。vector作为动态数组适用于邻接表实现;set提供自动去重和排序;string作为字符串类型;map用于映射关系;queue用于广度优先搜索;priority_queue是默认最大优先级队列;stack模拟栈操作;pair用于存储两个元素。
摘要由CSDN通过智能技术生成

1.vector

动态数组,方便的动态扩容,方便的变量初始化(int类型默认初始化为0,bool默认初始化为false),可以用来实现邻接表(结点数太多的图)。

头文件

#include<vector>
using namespace std;

定义

//typename 可以是基本数据类型,可以是其它标准stl容器,可以是自定义结构体
vector<typename> name;
vector<int> v1;
vector<vector<int> > v2; //两个维度都是动态的
vector<student> v3(10);//一维固定为10,二维动态

元素访问

//1.下标访问
v[i]
//2.迭代器访问
vector<typename>::iterator it;
auto it;//另一种迭代器简易定义方法
for(auto it = v.begin();it!=v.end();it++)
    cout<<*it;
//迭代器it可以进行算术运算

常用函数

函数 说明
push_back(x); 将元素x添加到容器末尾
pop_back(); 删除容器末尾元素
size(); 获取容器大小
clear(); 清空元素
insert(it,x); 在it处插入一个元素x
erase(it); 删除it处的元素
erase(first,last); 删除[first,last)区间内的元素

使用场景

  • 元素个数不确定
  • 用于实现邻接表存储图

2.set

内部自动有序且不含重复元素的集合。

头文件

#include<set>
using namespace std;

定义

set<typename> name;

元素访问

for(auto it = v.begin();it!=v.end();it++)
    cout<<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值