map 查找键 并删除,遍历

转自:https://www.zhaokeli.com/article/8309.html

1 map<string,int>::iterator key = cmap.find("Anna");
2 if(key!=cmap.end())
3 {
4   cout<<key->second<<endl;
5   //这里是用指定的迭代指针删除
6   cmap.erase(key);
7 }
8 //也可以直接用指定的键删除
9 cmap.erase("samy");

 map遍历:引用:https://blog.csdn.net/VariatioZbw/article/details/124947520

#include <iostream>
#include <unordered_map>
using namespace std;

int main() {
    unordered_map<string, int> mp;
    mp["张三"] = 20;
    mp["李四"] = 18;
    mp["王五"] = 30;

    // 方式一、迭代器
    cout << "方式一、迭代器" << endl;
    for (auto it = mp.begin(); it != mp.end(); it++) {
        cout << it -> first << " " << it -> second << endl;
    }

    // 方式二、range for C++ 11版本及以上
    cout << "\n方法二、 range for" << endl;
    for (auto it : mp) {
        cout << it.first << " " << it.second << endl;
    }

    // 方法三、 C++ 17版本及以上
    cout << "\n方法三" << endl;
    for (auto [key, val] : mp) {
        cout << key  << " " << val << endl;
    }
    
    return 0;
}

结果:

方式一、迭代器
王五 30
李四 18
张三 20

方法二、 range for
王五 30
李四 18
张三 20

方法三
王五 30
李四 18
张三 20

 

posted @ 2022-01-07 11:09  阳光下的小土豆  阅读(220)  评论(0编辑  收藏  举报