91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C++ unordered_map遍歷時如何刪除元素

c++
小樊
130
2024-07-25 00:45:18
欄目: 編程語言

在C++中,當遍歷unordered_map并刪除元素時,我們需要注意一些事項。因為在遍歷過程中刪除元素可能會導致迭代器失效,所以我們不能直接在循環中刪除元素。以下是一種可行的方法:

  1. 遍歷unordered_map并將需要刪除的鍵值對放入一個臨時的容器中,而不是直接刪除它們。
  2. 遍歷結束后,再根據臨時容器中的鍵值對來刪除元素。

以下是一個示例代碼:

#include <iostream>
#include <unordered_map>
#include <vector>

int main() {
    std::unordered_map<int, std::string> myMap = {
        {1, "apple"},
        {2, "banana"},
        {3, "cherry"}
    };

    std::vector<int> keysToDelete;

    for (auto it = myMap.begin(); it != myMap.end(); ++it) {
        if (it->first % 2 == 0) {
            keysToDelete.push_back(it->first);
        }
    }

    for (int key : keysToDelete) {
        myMap.erase(key);
    }

    for (auto& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

在上面的示例中,我們遍歷unordered_map,將所有偶數鍵值對的鍵存入keysToDelete容器中,然后再根據這些鍵刪除元素。這樣可以避免迭代器失效的問題。

0
丹巴县| 盐边县| 河北区| 北海市| 新邵县| 莆田市| 伊宁市| 乌兰县| 黄梅县| 凤庆县| 安福县| 四川省| 绥德县| 赤城县| 建阳市| 广元市| 永济市| 濮阳县| 水富县| 大英县| 河源市| 武定县| 韩城市| 西安市| 积石山| 托克托县| 永和县| 泗洪县| 梨树县| 股票| 江安县| 瑞金市| 庆城县| 万州区| 正蓝旗| 习水县| 慈溪市| 云南省| 酉阳| 吉安市| 遂宁市|