首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在没有使用赋值运算符的情况下,如何初始化map的值?

在没有使用赋值运算符的情况下,如何初始化map的值?
EN

Stack Overflow用户
提问于 2020-01-17 07:45:18
回答 2查看 49关注 0票数 0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
#include <map>

using namespace std;
int main()
{
    map<int, int> m;
    for (int i = 0; i < 5; i++)
        m[i]++;

    for (int i = 0; i < 5; i++)
        cout<<m[i];
}

输出:

11111

现在,如何初始化mi的值?它不应该转化为mi的值增加1吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-17 07:48:12

它不应该转化为mi的值增加1吗?

它是。执行map[key]时,如果key不存在,则将其添加到映射中,值初始化映射到键的值。对于int值,初始化意味着零初始化。因此,m[i]0,而++将其增量为1

票数 5
EN

Stack Overflow用户

发布于 2020-01-17 07:46:15

如果您查看医生们 for std::map::operator[]

返回对映射到与键等效的键的值的引用,如果该键不存在,则执行插入

因此,基本上,如果该键不存在,m[i]将执行插入操作,然后通过引用新插入的值进行增量。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59790577

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文