C++ pair的基本用法总结整理
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
1,pair的应用 pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。 其标准库类型–pair类型定义在#include <utility>头文件中,定义如下: 类模板:template<class> struct pair 参数:T1是第一个值的数据类型,T2是第二个值的数据 C++中的`std::pair`是一个非常实用的工具,它允许我们将两个不同类型的数据组合成一个单一的实体。这个工具在很多场景下都非常有用,比如在STL中的`std::map`,它用`pair`来存储键值对,或者在一个函数需要返回两个值时作为返回类型。 `std::pair`的定义在`<utility>`头文件中,其模板形式如下: ```cpp template <class T1, class T2> struct pair ``` 这里的`T1`和`T2`是两个模板参数,分别代表`pair`中两个元素的类型。`pair`有两个公有成员变量`first`和`second`,它们分别存储了`T1`和`T2`类型的值。 创建和初始化`pair`对象的方式多样。例如,你可以这样创建一个空的`pair`: ```cpp pair<T1, T2> p1; // 使用默认构造函数,元素用T1和T2类型进行值初始化 ``` 或者这样创建并初始化`pair`: ```cpp pair<T1, T2> p1(v1, v2); // first被初始化为v1,second被初始化为v2 ``` 此外,`make_pair`函数可以帮助我们更简洁地创建`pair`: ```cpp make_pair(v1, v2); // 创建一个pair,元素类型由v1和v2决定 ``` 比较和赋值操作也是`pair`的重要部分。两个`pair`对象可以通过`<`运算符进行字典序比较,而`==`运算符检查两个对象的`first`和`second`是否都相等。成员访问则通过`.first`和`.second`完成: ```cpp p1.first; // 访问第一个元素 p1.second; // 访问第二个元素 ``` 如果需要大量创建相同类型的`pair`,可以使用`typedef`简化类型声明: ```cpp typedef pair<string, string> Author; Author proust("March", "Proust"); ``` 赋值操作也支持`pair`对象之间的拷贝或赋值: ```cpp pair<int, double> p1(1, 1.2); pair<int, double> p2 = p1; // 拷贝构造 pair<int, double> p3; p3 = p1; // 使用赋值操作符 ``` `make_pair`函数是创建`pair`对象的另一种方式,它可以自动推断元素类型并创建`pair`,比如: ```cpp pair<int, string> bookInfo = make_pair(1990, "The Catcher in the Rye"); ``` `std::pair`的灵活性和便利性使得它成为C++程序员的常用工具,无论是在数据结构中存储键值对,还是在函数返回中携带多个结果,都能发挥重要作用。
- 银庭拂晓2024-04-16这个资源对我启发很大,受益匪浅,学到了很多,谢谢分享~
- 粉丝: 3
- 资源: 900
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助