中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
大同市| 丹巴县| 郑州市| 赤城县| 广丰县| 清新县| 巴中市| 仙桃市| 平潭县| 孙吴县| 高邑县| 盐源县| 上饶市| 申扎县| 宜都市| 元氏县| 兰溪市| 贵定县| 克什克腾旗| 新龙县| 宽城| 清水河县| 雅安市| 阳泉市| 河北区| 望江县| 宜黄县| 茌平县| 武冈市| 定远县| 常熟市| 玉树县| 日土县| 开封市| 东海县| 耿马| 赞皇县| 米林县| 大邑县| 尉氏县| 中阳县|