unordered_map
1. 赋值操作
赋值比较简单,和其他STL都差不多的。
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<string, string> p1; // 直接定义
unordered_map<string, string> p2{ {"apple", "red"}, {"lemon", "yellow"} }; // 直接在定义后赋值
unordered_map<string, string> p3(p2); // 拷贝p2给p3
unordered_map<string, string> p4(p3.begin(), p3.end()); // 通过迭代器一一赋值
unordered_map<string, string> p5 = p4; // 通过赋值符号直接拷贝
unordered_map<string, string> p6 = { {"apple", "red"}, {"lemon", "yellow"} }; // 通过赋值符号直接赋值
system("pause");
return 0;
}
注:后续还有可以达到赋值效果的成员函数
2. 成员函数
2.1 元素访问
1 第一种方式是通过operator[]
操作访问元素
*#第二种方式是通过成员函数at()访问元素
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<int, string> p1 = { {1, "这是一"}, {2, "这是二"}};
cout << "p1[1] = " << p1[1] << endl; // 通过operator[]可以直接访问该键的值
p1[1] = "这是1"; // 在访问键的时候可以用赋值符号进行修改
cout << "p1[1]修改后:" << p1[1] << endl;
p1[3] = "这是三"; // 访问一个不存在的键可以直接添加键值对
p1[4]; // 如果在访问的时候没有赋值,则只添加键,值为空
cout << "p1[3] = " << p1[3] << endl;
cout << "p1[4] = " << p1[4] << endl;
cout << "p1.at(3) = " << p1.at(3) << endl; // 通过成员函数at访问键值对
system("pause");
return 0;
}
输出结果为:
p1[1] = 这是一
p1[1]=修改后:这是1
p1[3] = 这是三
p1[4] =
p1.at(3) = 这是三
注:at()访问成员函数不能像[]一样对键值对进行添加,但是可以修改键所对应的值,所以[]更常用