C++ unordered_map使用

头文件

#include

声明unordered_map

//键类型为string,值类型为int
unordered_map myMap;

插入元素

myMap["key1"] = 10;//插入键值对“key1”->10;
myMap["key2"] = 20;//插入键值对“key1”->20;
myMap["key3"] = 30;//插入键值对“key1”->30;

访问元素

cout<

修改元素

 myMap["key1"] = 100; // 修改键 "key1" 对应的值为 100
// 插入新的键值对 "key4" -> 40(不会覆盖已存在的键)
 myMap.insert(make_pair("key4", 40)); 

删除元素

myMap.erase("key1"); // 删除键 "key1" 对应的键值对
myMap.erase("key2"); // 删除键 "key2" 对应的键值对

查找元素

myMap.find("key1");//查找成功返回迭代器位置,查找失败返回myMap.end();
//常用框架
if (myMap.find("key3") != myMap.end()) { // 如果键 "key3" 存在,则执行相应的操作
    // ...
}
else {
    // ...
}

遍历元素

for (const auto& it : myMap) { //遍历所有元素
    cout << it.first << " => " << it.second << endl; // 输出每个键值对的键和值
}

全部代码

#include 
using namespace std;
int main() {
    //声明和初始化
    unordered_map myMap; // 声明一个空的unordered_map对象,键类型为string,值类型为int
    myMap["key1"] = 10; // 插入键值对 "key1" -> 10
    myMap["key2"] = 20; // 插入键值对 "key2" -> 20
    myMap["key3"] = 30; // 插入键值对 "key3" -> 30
    //访问元素
    cout << myMap["key1"] << endl; // 输出键 "key1" 对应的值,即 10
    cout << myMap.at("key2") << endl; // 输出键 "key2" 对应的值,即 20
    //修改元素
    myMap["key1"] = 100; // 修改键 "key1" 对应的值为 100
    myMap.insert(make_pair("key4", 40)); // 插入新的键值对 "key4" -> 40(不会覆盖已存在的键)
    //删除元素
    myMap.erase("key1"); // 删除键 "key1" 对应的键值对
    myMap.erase("key2"); // 删除键 "key2" 对应的键值对
    //遍历元素
    for (const auto& it : myMap) { //遍历所有元素
        cout << it.first << " => " << it.second << endl; // 输出每个键值对的键和值
    }
    //判断元素是否存在
    if (myMap.find("key3") != myMap.end()) { // 如果键 "key3" 存在,则执行相应的操作
    // ...
    }
    else {
    // ...
    }
}

你可能感兴趣的:(C++STL,c++,数据结构,算法)