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

溫馨提示×

c++ map刪除對迭代器的影響

c++
小樊
92
2024-06-25 16:55:29
欄目: 編程語言

在C++中,使用std::maperase()函數刪除一個元素時,會使得傳入的迭代器無效化。這意味著如果你嘗試在刪除元素后繼續使用該迭代器,就會導致未定義的行為。

如果您要在刪除元素后繼續迭代std::map,您應該在刪除元素之后遞增迭代器,而不是繼續使用已刪除的迭代器。另外,您還可以使用std::mapfind()函數來查找下一個元素的迭代器。

以下是一個示例代碼,展示了如何在刪除元素后繼續迭代std::map

#include <iostream>
#include <map>

int main() {
    std::map<int, std::string> myMap;
    myMap[1] = "one";
    myMap[2] = "two";
    myMap[3] = "three";

    for(auto it = myMap.begin(); it != myMap.end(); ) {
        if(it->first == 2) {
            it = myMap.erase(it);
        } else {
            ++it;
        }
    }

    for(auto it = myMap.begin(); it != myMap.end(); ++it) {
        std::cout << it->first << ": " << it->second << std::endl;
    }

    return 0;
}

在上面的示例中,我們刪除了鍵為2的元素,并且在刪除后繼續遍歷std::map

0
阜新市| 沙坪坝区| 启东市| 衡东县| 绥芬河市| 金湖县| 卢龙县| 峡江县| 新田县| 四会市| 三门县| 兴化市| 观塘区| 莱阳市| 仪征市| 灵石县| 南通市| 延吉市| 饶河县| 内乡县| 固安县| 区。| 买车| 汉沽区| 蕲春县| 炎陵县| 彭州市| 炉霍县| 剑川县| 左贡县| 大姚县| 嵩明县| 运城市| 石景山区| 独山县| 横峰县| 栾城县| 丰城市| 富锦市| 隆昌县| 岗巴县|