一、介绍
- 头文件:#include <utility>
特点:
- 一个pair保存两个数据
- pair是一个用来生成特点类型的模板
- 当创建一个pair时,我们必须提供两个类型名,pair的数据成员具有对应的类型
pair的操作:
二、初始化
规则:
- ①定义pair时,不给出值时,使用默认构造函数初始化
- ②使用圆括号/花括号初始化器进行初始化
演示案例:
- 使用默认构造函数初始化
//保存两个string,两个string初始化为空 pair<string, string> anon; //保存一个string和一个size_t,string为空,size_t为0 pair<string, size_t> word_count; //保存一个string和一个vector容器,string和vector均为空 pair<string, vector<int>> line;
- 使用圆括号/花括号初始化器进行初始化
pair<string, string> author{"James","Joyce"}; //等同于 pair<string, string> author("James","Joyce");
三、first、second成员
- first、second分别用来访问pair容器的第1、第2个数据成员
pair<string, string> author{ "James","Joyce" };
cout << author.first <<"\n"<< author.second << endl;
四、pair作为函数返回值的使用
如果pair作为函数返回值返回,则可以使用下面的方式:
- 隐式/显式构造返回
- 初始化器返回
- 使用make_pair<>创建pair对象返回
演示案例:
pair<string, int> process(vector<string> &v) { if (!v.empty()) return{ v.back(),v.back().size() }; //初始化器返回 else return pair<string, int>();//隐式构造返回 //return pair<string, int>(v.back(),v.back().size);//显示构造返回 }
- 在C++早期版本,不允许使用初始化器,因此只能使用显式构造
- 也可以使用make_pair<>创建pair对象返回
if (!v.empty) return make_pair{ v.back(),v.back().size };
转载:https://blog.csdn.net/qq_41453285/article/details/100628402
查看评论