std::unordered_map<>的初始化
时间: 2024-09-15 19:03:07 浏览: 43
`std::unordered_map<>`是C++标准库中的关联容器,用于存储键值对,其特点是查找速度快,常用于无需保持元素顺序的情况。它的初始化主要有几种常见的方式:
1. **空初始化**:
```cpp
std::unordered_map<std::string, int> emptyMap;
```
2. **使用初始列表**:
```cpp
std::unordered_map<std::string, int> map = {{"key1", 1}, {"key2", 2}};
```
这里通过花括号提供了一组键值对作为初始内容。
3. **从其他容器复制**:
```cpp
std::vector<std::pair<std::string, int>> pairs = {{"a", 1}, {"b", 2}};
std::unordered_map<std::string, int> map(pairs.begin(), pairs.end());
```
4. **自定义构造函数**:
如果`AbstractEdgeFindCategories`有默认构造函数,你可以这样初始化:
```cpp
std::unordered_map<std::string, std::shared_ptr<AbstractEdgeFindCategories>> categoriesMap;
```
5. **迭代器初始化**:
```cpp
auto it1 = ...; // 一组迭代器指向键值对
auto it2 = ...; // 另一组迭代器结束
std::unordered_map<std::string, int> map(it1, it2);
```
记住,`std::unordered_map`通常需要模板参数指定键和值的类型,如上述例子所示。
阅读全文