c unordered_map初始化
时间: 2023-07-06 13:39:20 浏览: 54
在C++中,unordered_map的初始化方式有多种。以下是其中的一些:
1. 使用默认构造函数:
```
std::unordered_map<std::string, int> mp;
```
这将创建一个名为mp的unordered_map,其中键为字符串类型,值为整数类型。
2. 使用初始化列表:
```
std::unordered_map<std::string, int> mp = {{"apple", 1}, {"banana", 2}, {"orange", 3}};
```
这将创建一个名为mp的unordered_map,并将三个键值对插入到其中。
3. 使用迭代器:
```
std::vector<std::pair<std::string, int>> vec = {{"apple", 1}, {"banana", 2}, {"orange", 3}};
std::unordered_map<std::string, int> mp(vec.begin(), vec.end());
```
这将创建一个名为mp的unordered_map,并将vec中的所有键值对插入到其中。
注意,unordered_map中的键必须是唯一的,如果插入了重复的键,则后面的值会覆盖前面的值。
相关问题
unordered_map 初始化
unordered_map的初始化方式有多种。可以使用默认初始化,也可以手动设置初始大小。使用默认初始化时,unordered_map会被初始化为空的容器。例如,在代码中使用unordered_map<int, int> occur;进行初始化时,occur会被初始化为空的unordered_map容器\[1\]。另外,也可以手动设置unordered_map的初始大小。但需要注意的是,不能像vector那样使用(size(), 0)进行手动初始化,因为unordered_map中的key是不能出现相同的。正确的方式是使用unordered_map的构造函数进行手动设置初始大小,例如unordered_map<int, int> occur(arr.size());\[1\]。这样就可以根据arr的大小来设置unordered_map的初始大小了。
#### 引用[.reference_title]
- *1* *2* *3* [map、unordered_map和vector的初始化和底层机理的差别](https://blog.csdn.net/mrqiuwen/article/details/127183780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
unordered_map初始化大小
unordered_map的初始化方式有多种。一种方式是直接初始化,你可以在声明unordered_map变量时使用花括号来初始化键值对。例如:
std::unordered_map<std::string, size_t> people {{"Jan",44}, {"Jim", 33}, {"Joe", 99}}; // Name,age
另一种方式是逐个插入元素。你可以使用下标操作符[]来插入键值对,也可以使用insert函数或emplace函数来插入键值对。例如:
std::unordered_map<int32_t, std::string> un_m2;
un_m2 = "teacher";
un_m2.insert(std::make_pair(3, "student"));
un_m2.emplace(std::make_pair(5, "boy"));
un_m2.insert(std::pair<int32_t, std::string>(9, "girl"));
还有一种方式是通过拷贝初始化。你可以将一个已有的unordered_map对象赋值给另一个unordered_map对象来进行拷贝初始化。例如:
std::unordered_map<int32_t, std::string> un_m3 = un_m2;
需要注意的是,为了使用unordered_map,你需要包含<unordered_map>头文件,并且unordered_map是一个模板类,它有多个模板参数可以指定。<span class="em">1</span><span class="em">2</span><span class="em">3</span>