c++ - 增加无序映射中默认构造的 int

标签 c++

我有无序的计数器 map ,例如:

std::unordered_map<std::string, std::size_t> counters_;

在尝试增加值之前我是否需要手动创建一个值?下一行会被视为未定义行为吗?

std::unordered_map<std::string, std::size_t> counters_;

counters_["non_existing_key"] += 1;

最佳答案

通过使用std::map::operator[] ,您将在 map 中创建一个新值(如果之前不存在)。 此外,新值将是 value-initialized ,因此增加值是明确定义的。

关于c++ - 增加无序映射中默认构造的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69335705/

相关文章:

c++ - 编译 STL map 插入时出现问题

c++ - 带有十六进制字符串的文件。需要格式化它以便我可以在程序中使用它

c++ - 如何在 Scintilla 中隐藏换行符?

C++ 帮助解决编译器错误

c++ - C++ 中的延迟转换

c++ - 一个没有被操作过的 32 位归一化 float ,在任何平台/编译器上都是一样的吗?

c++ - 向上和向下舍入数字 C++

c++ - TBB 我必须破坏 child 的任务还是 parent 照顾?

c++ - char * 的 _mm_loadu_ps 是否有等效项?

c# - 用于从托管代码中过滤 HTTPS 的 Windows 过滤平台