持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情
1.1 pair对组创建
功能描述:
- 成对出现的数据,利用对组可以返回两个数据
1.2 两种创建方式:
pair<type, type> p ( value1, value2 );
pair<type, type> p = make_pair( value1, value2 );
1.3 代码示例:
#include <string>
//对组创建
void test01()
{
pair<string, int> p(string("Tom"), 20);
cout << "姓名: " << p.first << " 年龄: " << p.second << endl;
pair<string, int> p2 = make_pair("Jerry", 10);
cout << "姓名: " << p2.first << " 年龄: " << p2.second << endl;
}
int main() {
test01();
system("pause");
return 0;
}
复制代码
1.4 总结:
两种方式都可以创建对组,记住一种即可
1.5 补充说明
- std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。
- C++标准程序库中凡是“必须返回两个值”的函数, 也都会利用pair对象。
- class pair可以将两个值视为一个单元。容器类别map和multimap就是使用pairs来管理其健值/实值(key/value)的成对元素。
- pair被定义为struct,因此可直接存取pair中的个别值。
- 两个pairs互相比较时, 第一个元素正具有较高的优先级。
1.6 make_pair的用法
无需写出型别, 就可以生成一个pair对象
例:
std::make_pair(42, '@');
而不必费力写成:
std::pair<int, char>(42, '@')
当有必要对一个接受pair参数的函数传递两个值时, make_pair()尤其显得方便,
void f(std::pair<int, const char*>);
void foo{ f(std::make_pair(42, '@')); //pass two values as pair }
1.7 pair的应用
- pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。
- 另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。