c++make_pair
时间: 2025-01-20 13:14:28 浏览: 44
### C++ `make_pair` 的用法
在 C++ 中,`std::make_pair` 是一个用于创建 `std::pair` 对象的便捷函数模板。此函数允许程序员快速初始化一对关联的数据项,通常用于容器如 `std::map` 或者其他需要键值对的地方。
#### 基本语法
`std::make_pair` 函数接受两个参数并返回一个 `std::pair<T1, T2>` 类型的对象,其中 `T1` 和 `T2` 分别对应传入的第一个和第二个参数的类型[^1]。
```cpp
#include <utility> // For std::make_pair
#include <iostream>
#include <string>
int main() {
// 使用 make_pair 创建 pair<int, string>
auto p = std::make_pair(42, std::string("answer"));
std::cout << "The value is: " << p.first << "\n";
std::cout << "The key is: " << p.second << "\n";
return 0;
}
```
上述代码展示了如何使用 `std::make_pair` 来创建一个整数与字符串组合而成的配对对象,并访问其成员变量 `.first` 和 `.second` 输出对应的值。
#### 应用于 STL 容器
当向关联式容器(例如 `std::map`)插入元素时,`std::make_pair` 提供了一种简洁的方法来构建这些键值对:
```cpp
#include <map>
#include <utility> // For std::make_pair
void insertIntoMap(std::map<int, double>& m) {
int key = 1;
double value = 3.14;
// 插入新元素到 map 中
m.insert(std::make_pair(key, value));
}
// 遍历 map 并打印所有条目
void printMap(const std::map<int, double>& m) {
for (const auto& elem : m) {
std::cout << "Key: " << elem.first << ", Value: " << elem.second << '\n';
}
}
```
这段程序定义了一个辅助函数 `insertIntoMap()`,它接收一个引用作为参数并将新的 `<key,value>` 组合插入给定的地图中;另一个函数则负责迭代整个地图并显示每一条记录的内容。
阅读全文
相关推荐




















