unordered_map赋值以及常用成员函数

目录

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()访问成员函数不能像[]一样对键值对进行添加,但是可以修改键所对应的值,所以[]更常用

2.2 容量

上一篇:[USACO18JAN]MooTube


下一篇:763. 划分字母区间(滑动窗口,贪心)