簡體   English   中英

將一對插入地圖並增加計數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM