pair与make_pair
时间: 2023-12-08 20:06:40 浏览: 45
pair与make_pair是C++标准库中用于创建键值对的工具。
pair是一个模板类,可以存储两个不同类型的值,并将它们作为一个单元进行操作。例如,可以使用pair来表示坐标的x和y值、姓名和年龄等等。
make_pair是一个辅助函数模板,用于创建pair对象。它接受两个参数,分别是要存储的两个值,然后返回一个对应的pair对象。例如,可以使用make_pair函数创建一个存储整数和字符串的pair对象。
下面是一些示例代码:
```cpp
#include <iostream>
#include <utility> // 包含pair和make_pair所在的头文件
int main() {
std::pair<int, std::string> p1(1, "apple"); // 使用pair直接创建对象
std::pair<int, std::string> p2 = std::make_pair(2, "banana"); // 使用make_pair创建对象
std::cout << "p1: " << p1.first << ", " << p1.second << std::endl;
std::cout << "p2: " << p2.first << ", " << p2.second << std::endl;
return 0;
}
```
输出结果:
```
p1: 1, apple
p2: 2, banana
```
通过使用pair和make_pair,可以方便地创建和操作键值对。
相关问题
c++ 中pair与make_pair的区别
在C++中,`pair` 是一个模板类,用于存储一对值,可以将其视为一个简单的容器。而 `make_pair` 是一个函数模板,用于创建一个 `pair` 对象。
`pair` 类的定义如下:
```cpp
template <class T1, class T2>
struct pair {
T1 first;
T2 second;
// ...
};
```
可以看到,`pair` 类有两个成员变量 `first` 和 `second`,分别用于存储一对值的第一个和第二个元素。
`make_pair` 函数模板的定义如下:
```cpp
template <class T1, class T2>
constexpr pair<V1, V2> make_pair(T1&& t, T2&& u);
```
`make_pair` 函数接受两个参数,并返回一个 `pair` 对象,其中第一个参数被赋值给 `pair` 对象的 `first` 成员,第二个参数被赋值给 `pair` 对象的 `second` 成员。
使用 `make_pair` 可以方便地创建一个 `pair` 对象,而无需显式指定类型。例如:
```cpp
#include <iostream>
#include <utility>
int main() {
auto myPair = std::make_pair(10, "hello");
std::cout << myPair.first << ", " << myPair.second << std::endl;
return 0;
}
```
输出结果为:
```
10, hello
```
在上述示例中,我们使用 `make_pair` 创建了一个 `pair<int, const char*>` 类型的对象 `myPair`,第一个元素为 `10`,第二个元素为 `"hello"`。然后,我们输出了 `myPair` 的 `first` 和 `second` 成员。
总结来说,`pair` 是一个类模板,用于存储一对值,而 `make_pair` 是一个函数模板,用于方便地创建 `pair` 对象。
c++pair和make_pair
C++中的pair是一个模板类,用于存储两个不同类型的值。make_pair是一个函数模板,用于创建一个pair对象并初始化其值。
pair的应用非常方便,特别是当需要将两个值作为参数传递给接受pair参数的函数时。通过使用make_pair函数,我们可以将两个值打包成一个pair对象,并将其作为参数传递给函数。例如,可以使用make_pair(42, '@')来将整数42和字符'@'打包成一个pair对象,并将其传递给函数f(std::pair<int, const char*>);
make_pair函数的定义如下:
template<class first, class second>
inline pair<first, second> make_pair(const first& _X, const second& _Y)
使用make_pair函数可以方便地生成我们需要的pair对象,并且代码更加清晰。另外,pair对象可以接受隐式的类型转换,这使得我们可以在一定程度上提高代码的灵活性。例如,可以使用std::pair<int, float>(1, 1.1)或std::make_pair(1, 1.1)来创建一个包含整数和浮点数的pair对象。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [C++ pair 和make_pair的使用与区别](https://blog.csdn.net/weixin_45882303/article/details/105302355)[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 ]