std::map的初始化
时间: 2024-08-26 11:02:47 浏览: 60
`std::map`是C++标准库中的关联容器,它使用红黑树作为底层数据结构,存储键值对。`std::map`的初始化可以通过多种方式进行:
1. **空初始化**:
```cpp
std::map<int, string> m;
```
这会创建一个空的`std::map`,默认初始容量为0。
2. **构造函数提供初始内容**:
```cpp
std::map<int, string> m = {{1, "one"}, {2, "two"}};
```
这种方式通过花括号列表直接传递键值对来初始化。
3. **使用insert()方法逐个添加元素**:
```cpp
std::map<int, string> m;
m.insert({1, "one"});
m.insert({2, "two"});
```
4. **使用make_pair()或pair模板**:
```cpp
std::map<int, string> m;
m.insert(std::make_pair(1, "one"));
m.insert(std::make_pair(2, "two"));
```
或者
```cpp
std::map<int, string> m;
m[{1, "one"}];
m[{2, "two"}];
```
5. **从其他映射、迭代器或者已排序范围中构造**:
```cpp
std::vector<std::pair<int, string>> pairs = {{1, "one"}, {2, "two"}};
std::map<int, string> m(pairs.begin(), pairs.end());
```