C++刷题-容器常用方法

最近工作从java转到c++了,刷题的时候常会忘记容器的方法,查找起来很不方便,决定针对c++刷题,总结一下,方便查阅。

unordered_map

1、插入元素

//数组形式
map['a'] = 1;
//直接插入
map.insert( { {'b',2} , {'c',3} } );

2、修改元素

map['a'] = 0;

3、删除元素

//删除key为'a'的元素
map.erase('a'); 

//删除第一个元素
map.erase(map.begin());

4、判断元素是否存在

//如果元素存在
if(map.find('a')!=map.end())
if(map.count('a')!=0)

5、清空所有元素

map.clear();

6、 遍历并取出键和值

//方法一
for( auto& a : map)
{
    char key= a.first;
    int  value= a.second;
}

//方法二
for (auto it = map.begin(); it != map.end(); it++) 
{
		char key = it->first;
        int  value = it->second;
}

7、判断是否为空

if( map.empty() )

8、求值键对个数

map.size();

queue

pop() //删除第一个元素 
push() //在末尾加入一个元素 
size() //返回队列中元素的个数 
empty() //如果队列空则返回真 
front() //返回第一个元素 
back() //返回最后一个元素 

stack

pop() //弹出堆栈顶部的元素
push() //向堆栈顶部添加元素
size() //返回堆栈中元素的个数
empty() //判断堆栈是否为空
top() //返回堆栈顶部的元素 

vector

1、插入和删除元素

// 创建一个空的vector
std::vector<int> v;

// 在vector末尾添加元素
v.push_back(1);
v.push_back(2);
v.push_back(3);

// 删除vector末尾的元素
v.pop_back();

// 在vector的第二个位置插入元素
v.insert(v.begin() + 1, 4);

// 删除vector的第三个元素
v.erase(v.begin() + 2);

2、访问元素

// 创建一个有5个元素的vector
std::vector<int> v {1, 2, 3, 4, 5};

// 通过下标访问元素
int x = v[0];

// 使用at()函数访问元素
int y = v.at(1);

// 使用迭代器访问元素
for (auto it = v.begin(); it != v.end(); ++it) {
    std::cout << *it << " ";
}

// 使用范围for循环访问元素
for (int n : v) {
    std::cout << n << " ";
}

3、修改元素

// 创建一个有3个元素的vector
std::vector<int> v {1, 2, 3};

// 修改vector的第二个元素
v[1] = 4;

// 修改vector的第三个元素
v.at(2) = 5;

4、容量操作

// 创建一个有5个元素的vector
std::vector<int> v {1, 2, 3, 4, 5};

// 查询vector的大小
int size = v.size();

// 判断vector是否为空
bool empty = v.empty();

// 查询vector的容量
int capacity = v.capacity();

// 调整vector的容量
v.reserve(10);
v.shrink_to_fit();

priority_queue

1、定义

priority_queue<typename, container, functional>
  • typename是数据的类型;
  • container是容器类型,可以是vector,queue等用数组实现的容器,不能是list,默认可以用vector;
  • functional是比较的方式,默认是元素值越大,优先级越高。

2、基本操作

push() :入队
pop() :将队列中优先级最高的元素出队
top() :获得队列优先级最高的元素
size() :获得队列大小
empty() :判断队列是否为空

文章只是为了c++刷题时方便查阅,后续刷题遇到新的容器使用方法还会持续更新。

参考:C++ unordered_map常见用法

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值