小言_互联网的博客

C++(STL库):16--pair容器

408人阅读  评论(0)

一、介绍

  • 头文件:#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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场