[英]Insert a pair into a map and increase the count?
我正在使用的代碼庫使用map::operator[]
插入並將該條目中的項目計數加一(這對我來說是一個知識差距)。 下面是一個例子:
map<string, size_t> namesMap;
namesMap[firstName]++;
我想要做的是在插入的 ID 上附加一個 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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.