C++|C++ pair的用法案例详解

一、介绍 pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair。当然你也可以自定义一个结构体struct。不过大家都是为了方便,所以就直接用pair了。
pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。
其标准库类型--pair类型定义在#include 头文件中,定义如下:
类模板:

template struct pair

参数:T1是第一个值的数据类型,T2是第二个值的数据类型。
二、构造函数
pair p1; //创建一个空的pair对象(使用默认构造),它的两个元素分别是T1和T2类型,采用值初始化。pair p1(v1, v2); //创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v1,second成员初始化为v2。make_pair(v1, v2); // 以v1和v2的值创建一个新的pair对象,其元素类型分别是v1和v2的类型。

make_pair的用法
无需写出型别, 就可以生成一个pair对象
例:
std::make_pair(42, '@');

而不必费力写成:
std::pair(42, '@')

当有必要对一个接受pair参数的函数传递两个值时, make_pair()尤其显得方便,
void function(std::pair); void foo{function(std::make_pair(42, '@')); //pass two values as pair}

三、使用
pair p1; p1 = make_pair(1, 1.2); cout << p1.first << p1.second << endl; //output: 1 1.2 int a = 8; string m = "James"; pair newone; newone = make_pair(a, m); cout << newone.first << newone.second << endl; //output: 8 James

C++|C++ pair的用法案例详解
文章图片

在某些清况函数会以pair对象作为返回值时,可以直接通过std::tie进行接收。比如
#include #include using namespace std; std::pair getPreson() {return std::make_pair("Sven", 25); }; int main(int argc, char **argv) {std::string name; int ages; std::tie(name, ages) = getPreson(); std::cout << "name: " << name << ", ages: " << ages << std::endl; return 0; }

C++|C++ pair的用法案例详解
文章图片

参考:
https://blog.csdn.net/weixin_42825576/article/details/81571419
https://blog.csdn.net/sevenjoin/article/details/81937695
【C++|C++ pair的用法案例详解】到此这篇关于C++ pair的用法案例详解的文章就介绍到这了,更多相关C++ pair的用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读