将一对插入地图并增加计数?
Insert a pair into a map and increase the count?
我正在使用的代码库使用该map::operator[]
插入该条目中的项目数并将其增加一个(这对我来说是一个知识差距(。下面是一个示例:
map<string, size_t> namesMap;
namesMap[firstName]++;
我想做的是在插入项上附加一个 ID,同时保留上述语法中的增量行为。
我的新地图如下所示:
map<string, pair<int, size_t>> namesMapWithID;
我正在努力了解如何使用我的新地图获得等效功能。这基本上是我的目标(显然是错误的,因为"++"不能这样使用(:
namesMapWithID.insert(firstName, make_pair(employeeID, ++));
我缺少更好的方法吗?
您可以通过使用 insert 方法以及它返回的 it/bool 对来执行此操作,从而提供单个查找(按名称(,如果在初始查找时设置员工 ID,然后分别递增计数器。
像这样:
auto pr = namesMapWithID.insert(std::make_pair(firstName,
std::make_pair(employeeID, size_t())));
++pr.first->second.second;
相关文章:
- 数组索引的值没有增加
- 为什么不;名字在地图上是按顺序排列的吗
- 基于多个条件处理地图中的所有元素
- 为什么我的代码在输出中增加了93天
- 在C++中将矢量转换为嵌套地图
- 有效地使用std::unordered_map来插入或增加键的值
- C++ 动态数组每次添加时将大小增加 1 - 错误
- 为什么要增加导致崩溃的指针
- 替换基于地图的所有引用
- 如何区分地图中的 0 和 false?
- 地图计数确实很重要,或者只是检查是否存在
- 如何从地图中删除矢量对象
- 是否有任何C++功能可以对地图进行排序?
- 如何使用 std::variant 打印地图键/值?
- 将一对插入地图并增加计数?
- 有效地将值插入地图.更好地增加或减少键
- 为什么将地图的元素设置为其大小会在分配之前增加大小*
- 访问地图元素会增加其分配的内存大小
- 在不增加地图大小的情况下检查地图内容
- 导致Seg故障的地图.如何增加内存