1. **构造函数**：
   - `map()`：创建一个空的映射容器。
   - `map(const map& other)`：拷贝构造函数，用另一个映射容器初始化当前映射容器。

2. **赋值和交换**：
   - `operator=`：将一个映射容器赋值给另一个映射容器。
   - `assign`：用特定数量的键值对或范围内的键值对替换映射容器的内容。
   - `swap`：交换两个映射容器的内容。

3. **迭代器相关**：
   - `begin`：返回指向第一个键值对的迭代器。
   - `end`：返回指向最后一个键值对之后的位置的迭代器。

4. **容量**：
   - `empty`：判断映射容器是否为空。
   - `size`：返回映射容器中键值对的数量。
   - `max_size`：返回映射容器最大可容纳的键值对数量。

5. **插入和访问元素**：
   - `insert`：插入一个键值对或多个键值对。
   - `erase`：移除指定键或范围内的键值对。
   - `clear`：移除映射容器的所有键值对。
   - `find`：查找指定键的迭代器。
   - `operator[]`：访问映射容器中指定键对应的值。

6. **其他操作**：
   - `count`：返回指定键在映射容器中出现的次数。
   - `lower_bound`：返回第一个不小于指定键的迭代器。
   - `upper_bound`：返回第一个大于指定键的迭代器。

```cpp
#include <iostream>
#include <map>
using namespace std;

int main() {
    // 创建空映射容器
    map<int, string> mymap;

    // 插入键值对
    mymap.insert(pair<int, string>(1, "One"));
    mymap.insert(make_pair(2, "Two"));
    mymap[3] = "Three";

    // 访问元素
    cout << "Value at key 2: " << mymap[2] << endl;

    // 查找元素
    map<int, string>::iterator it = mymap.find(3);
    if (it != mymap.end()) {
        cout << "Key 3 found, value: " << it->second << endl;
    }

    // 移除键值对
    mymap.erase(2);

    // 输出键值对数量
    cout << "Size of map: " << mymap.size() << endl;

    // 遍历输出所有键值对
    for (auto& pair : mymap) {
        cout << "Key: " << pair.first << ", Value: " << pair.second << endl;
    }

    return 0;
}
```

