unordered_map 用pair作键值
时间: 2023-10-17 17:25:27 浏览: 94
可以使用 `std::pair` 作为 `std::unordered_map` 的键值。以下是一个示例:
```cpp
#include <iostream>
#include <unordered_map>
#include <utility>
int main() {
std::unordered_map<std::pair<int, int>, std::string> myMap;
// 向 unordered_map 添加键值对
myMap.emplace(std::make_pair(1, 2), "Value1");
myMap.emplace(std::make_pair(3, 4), "Value2");
// 访问 unordered_map 的元素
std::cout << myMap[std::make_pair(1, 2)] << std::endl; // 输出 "Value1"
return 0;
}
```
在上述示例中,我们创建了一个 `std::unordered_map` ,并将 `std::pair<int, int>` 作为键类型,`std::string` 作为值类型。然后,我们使用 `emplace` 函数向 unordered_map 添加了键值对。要访问 unordered_map 的元素,我们可以使用对应的键。
相关问题
unordered_map用pair
来表示键值对是很常见的用法。可以使用`pair`来表示`unordered_map`中的键值对,其中键和值可以是不同的类型。以下是一个示例:
```cpp
#include <iostream>
#include <unordered_map>
#include <utility>
int main() {
std::unordered_map<int, std::string> myMap;
// 使用pair插入键值对
myMap.insert(std::make_pair(1, "apple"));
myMap.insert(std::make_pair(2, "banana"));
myMap.insert(std::make_pair(3, "orange"));
// 遍历unordered_map
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
输出:
```
1: apple
2: banana
3: orange
```
在上面的示例中,我们使用`std::make_pair`将键和值组合成一个`pair`对象,并将其插入到`unordered_map`中。然后,我们使用范围循环遍历`unordered_map`并打印出每个键值对的内容。
希望这个示例对你有帮助!如果还有其他问题,请随时提问。
unordered_map 和pair使用
unordered_map是C++标准库中的一个关联容器,它提供了一种键值对的映射关系。它的特点是根据键的哈希值进行快速查找,因此查找操作的时间复杂度为O(1)。unordered_map中的元素是无序的,即插入的顺序与元素在容器中的位置无关。
pair是C++标准库中的一个模板类,用于存储两个不同类型的对象。它将两个对象打包成一个单元,可以通过pair的成员变量first和second来访问这两个对象。pair常用于unordered_map中作为键值对的类型。
使用unordered_map和pair可以实现一些常见的操作,例如插入、查找、删除等。下面是使用unordered_map和pair的示例代码:
```cpp
#include <iostream>
#include <unordered_map>
#include <utility>
int main() {
// 创建一个unordered_map
std::unordered_map<int, std::string> myMap;
// 插入键值对
myMap.insert(std::make_pair(1, "apple"));
myMap.insert(std::make_pair(2, "banana"));
myMap.insert(std::make_pair(3, "orange"));
// 查找元素
std::unordered_map<int, std::string>::iterator it = myMap.find(2);
if (it != myMap.end()) {
std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
}
// 删除元素
myMap.erase(3);
// 遍历unordered_map
for (const auto& pair : myMap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
return 0;
}
```
阅读全文