#include <unordered_map> #include <unordered_set>
时间: 2024-03-20 21:36:59 浏览: 74
#include <unordered_map>和#include <unordered_set>是C++标准库中的头文件,用于引入无序容器的相关功能。
unordered_map是一个无序的关联容器,它存储键值对,并且可以根据键快速地查找对应的值。与传统的map相比,unordered_map不会对键进行排序,因此在插入和查找操作上具有更高的性能。使用unordered_map时,需要注意键的唯一性,即每个键只能对应一个值。
unordered_set是一个无序的容器,它存储唯一的元素,并且可以快速地判断一个元素是否存在。与传统的set相比,unordered_set不会对元素进行排序,因此在插入和查找操作上具有更高的性能。使用unordered_set时,需要注意元素的唯一性。
这两个头文件提供了使用哈希表实现的无序容器,可以在需要高效的插入、查找和删除操作时使用。同时,它们也提供了一些其他常用的操作,如遍历容器、获取容器大小等。
相关问题
怎么把元素插入到unordered_map<int> result_set;
在 C++ 中,你可以使用 `unordered_map` 的 `insert` 函数将元素插入到哈希表中。以下是一个示例:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, int> result_set;
// 插入键值对
result_set.insert(std::make_pair(1, 10));
result_set.insert(std::make_pair(2, 20));
result_set.insert(std::make_pair(3, 30));
// 打印哈希表
for (const auto& pair : result_set) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
在上面的示例中,我们首先创建了一个名为 `result_set` 的空的 `unordered_map`。
然后,通过使用 `insert` 函数将键值对插入到哈希表中。我们使用 `std::make_pair` 函数来创建键值对,第一个参数是键,第二个参数是值。
最后,我们遍历哈希表,并打印每个键值对的键和值。
请注意,`insert` 函数将在插入时检查键是否已经存在于哈希表中。如果键已经存在,则不会进行插入操作。如果你想要覆盖已经存在的键的值,可以使用赋值操作符来实现:`result_set[key] = value;`
希望这个示例对你有所帮助!如果你有任何其他问题,请随时提问。
unordered_set<int>
unordered_set<int>是一个无序的集合容器,它的底层使用哈希表来实现。与set容器相比,unordered_set容器不会对存储的数据进行排序。unordered_set容器不允许有重复的元素,即每个元素在容器中只能出现一次。unordered_set容器提供了一些常用的成员函数,如find()用于查找元素,insert()用于插入元素,erase()用于删除元素。可以使用迭代器来遍历unordered_set容器中的元素。以下是一个示例代码,展示了unordered_set容器的一些基本操作:
```cpp
#include <unordered_set>
#include <iostream>
int main() {
std::unordered_set<int> s;
// 插入元素
s.insert(1);
s.insert(-2);
s.insert(1);
s.insert(5);
s.insert(3);
s.insert(-2);
s.insert(6);
s.insert(4);
// 遍历元素
for (auto it = s.begin(); it != s.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl; // 输出: 1 5 -2 3 6 4
// 删除元素
s.erase(-2);
auto pos = s.find(5);
if (pos != s.end()) {
s.erase(pos);
}
// 交换容器
std::unordered_set<int> tmp{ 100, -200, 300, 250 };
s.swap(tmp);
// 输出交换后的容器元素
for (auto e : s) {
std::cout << e << " ";
}
std::cout << std::endl; // 输出: 100 300 -200 250
return 0;
}
```
以上代码展示了unordered_set容器的初始化、插入、遍历、删除和交换操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [【 C++ 】unordered_map和unordered_set的介绍和使用](https://blog.csdn.net/bit_zyx/article/details/126765652)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* [STL容器——unordered_set的用法](https://blog.csdn.net/qq_44629819/article/details/131294191)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文