C++Map方括号[]的用法

本文介绍了C++中Map容器方括号运算符[]的使用方法,包括当key值不存在时自动插入并赋值为0,以及已存在key值时进行增量操作。同时,文章展示了如何利用Map[]统计单词出现次数的经典场景,通过示例代码阐述了其简洁高效的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++Map方括号[]的用法

在这里插入图片描述

1.Map回顾

让我们简单来回顾一下Map的一些特性:

1.Map中存储的是<Key,Value>的kv模型的pair键值对调用insert插入make_pair创建pair的方式来插入。

2.Map不允许key值冗余,插入多个只会生效第一个pair对不过multiMap却是为冗余而生,可以解决此场景,不过若有重复每次调用find()找到的key往往是中序遍历的第一个key值。

3.Map自带升序,但却是按照key值来进行升序的,想要自己控制比较规则往往可重写仿函数

2.Map方括号[]

​ 在使用Map中我们可以使用map[key]来访问相应的key值,若不存在该key值,则会自动创建该key值,并且value赋值为0.

若使用map[key]++的方式则是创建key值或者在原存在的key上加1.具体看如下实例:

2.1当key值不存在时

map<string, int> CountMap;
	CountMap["apple"];     //插入
	CountMap["asshole"]++; //插入 + 加1

在这里插入图片描述

2.2当key值已经存在时

map<string, int> CountMap;
	CountMap.insert(make_pair("hello", 1));
	//已存在 "hello"

	CountMap["hello"]++; //加1

在这里插入图片描述

在以上代码的基础上添加一句,则能在原有基础上修改value值

CountMap[“hello”] = 666; //修改

在这里插入图片描述

3.Map[]的经典使用场景——统计单词个数

map的方括号[]经常用来统计单词使用个数,而且利用[]的机制往往简单的几句代码就能起到非常好的作用

所以经典用法是配合auto达到效果:

for (auto e : string)
	{
		CountMap[e]++; 
	}

具体实例如下:使用[]来统计vector中的单词

string str[] = {"apple","fuck","shaby","apple","pair","fuck","apple","jiji"};
	map<string, int> CountMap;
	for (auto e : str)
	{
		CountMap[e]++;
	}

在这里插入图片描述

用完后你会发现,哇!爆率真的很高!

在这里插入图片描述

本篇到此结束,如果你喜欢我的内容,麻烦手动点个赞吧!

还想要关注我更多内容,请看:
C++搜索二叉树的实现
一纸聊完C++继承

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arthur___Cui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值