亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
都安| 鄂托克旗| 桐庐县| 奈曼旗| 衡南县| 桃园县| 庐江县| 武穴市| 芦溪县| 登封市| 海门市| 孙吴县| 酒泉市| 泰安市| 芦溪县| 玛曲县| 正阳县| 白沙| 琼海市| 洮南市| 卫辉市| 教育| 濮阳市| 卓尼县| 肃宁县| 崇义县| 安岳县| 斗六市| 庆安县| 新密市| 永丰县| 陆河县| 潼关县| 轮台县| 定边县| 东乌| 鄯善县| 阿勒泰市| 玉门市| 仪陇县| 德州市|