c++ - C++ 等价于 Java Map getOrDefault?
问题描述
Java 的 getOrDefault 是一个很好的构造,用于单行访问地图值或起点(如果不存在)。我在 C++ 中的地图参考中没有看到任何平行的东西。有什么东西存在还是你自己建立的?
我在地图中有对象,如果它们存在我会更新它们,但如果它们不存在则构建新对象。使用 getOrDefault,我可以在默认端构造对象,或者在它存在时访问它。
http://www.cplusplus.com/reference/map/map/
https://www.geeksforgeeks.org/hashmap-getordefaultkey-defaultvalue-method-in-java-with-examples/
解决方案
我在地图中有对象,如果它们存在我会更新它们,但如果它们不存在则构建新对象。使用 getOrDefault,我可以在默认端构造对象,或者在它存在时访问它。
使用emplace
.
auto& element = *map.emplace(key, value).first;
emplace
如果键不存在,则插入一个新元素,并返回一个由元素的迭代器(已插入或已存在)和一个bool
指示是否插入的值组成的对。
推荐阅读
- python - Pycharm2018 中的 pip 版本
- django - django rest框架自定义序列化器
- asp.net-core - 为什么连接/令牌端点在刷新identityServer4中的访问令牌时不验证刷新令牌
- android - 如何在谷歌地图的标记中添加多个位图图标?
- junit - 如何验证它是最后一个调用的方法
- php - Laravel 比较多个多对多关系
- c# - Log4Net 正在创建文件但未写入文件
- php - Laravel 中带属性的最小值和最大值
- node.js - 我的 express.js hello world 和 Docker 设置有什么问题?
- java - 在 IntelliJ Idea 中用静态导入替换常量的导入