map函数里套pair
时间: 2023-07-30 07:08:09 浏览: 148
在C++中,可以使用`std::map`容器来存储键值对,其中键和值都可以是任意类型。如果要对`std::map`容器中的键值对进行操作,可以使用`std::map`的成员函数`std::map::begin()`和`std::map::end()`来遍历容器中的所有元素,也可以使用`std::for_each`算法和lambda表达式来对容器中的每个元素执行相同的操作。
如果要在`std::map`容器中使用`std::pair`作为值类型,可以使用以下代码:
```cpp
#include <iostream>
#include <map>
#include <utility>
int main() {
std::map<int, std::pair<int, int>> my_map;
my_map.insert(std::make_pair(1, std::make_pair(2, 3)));
my_map.insert(std::make_pair(4, std::make_pair(5, 6)));
my_map.insert(std::make_pair(7, std::make_pair(8, 9)));
// 遍历map容器中的所有键值对
for (auto& kvp : my_map) {
std::cout << "key = " << kvp.first << ", value = (" << kvp.second.first << ", " << kvp.second.second << ")" << std::endl;
}
// 使用for_each算法和lambda表达式
std::for_each(my_map.begin(), my_map.end(), [](const std::pair<int, std::pair<int, int>>& kvp) {
std::cout << "key = " << kvp.first << ", value = (" << kvp.second.first << ", " << kvp.second.second << ")" << std::endl;
});
return 0;
}
```
在上面的示例代码中,我们创建了一个`std::map<int, std::pair<int, int>>`类型的`my_map`对象,并向其中插入了三个键值对。然后,我们使用`for`循环和`auto`关键字来遍历`my_map`中的所有键值对,并将键和值打印到控制台上。我们还使用`std::for_each`算法和lambda表达式来执行相同的操作。
阅读全文