C++容器(三):pair类型

来源:互联网 发布:编程入门语言 编辑:程序博客网 时间:2024/06/05 10:21

pair类型

在开始介绍关联容器之前,我们有必要了解一种与之相关的标准库类型–pair类型。

操作 含义 pair<T1, T2> p1 创建一个空的pair对象,它的两个元素分别为T1T2类型,采用值初始化 pair<T1, T2> p1(v1, v2) 创建一个pair对象,它的两个元素分别是T1T2类型,其中first成员初始化为v1second成员初始化为v2 make_pair(v1,v2)v1v2创建一个新的pair对象,其元素类型分别是v1v2的类型 p1 < p2 两个pair对象之间的小于运算,其定义遵循字典顺序:如果p1.first < p2.first或者!(p2.first < p1.first) && p1.second < p2.second,则返回true p1 == p2 如果两个pair对象的firstsecond成员依次相等,则两个对象相等,返回true p.first 返回p中名为first的(公有)数据成员 p.second 返回p中名为second的(公有)数据成员

pair类型包含两个数据值,与容器一样,pair也是一种模板类型。在创建pair对象时,必须提供两个类型名:pair对象所包含的两个数据成员各自对应的类型名字,这两个类型名字不必相同:

pair<string, string> strs;   // holds two stringpair<string, int> wordCount; // holds a string and an intpair<string, vector<int>> line; // holds a string and a vector<int>

如果在创建pair对象时不提供初始化式,则调用默认构造函数对其成员采用值初始化。当然,也可以定义时提供初始化式:

pair<string, string> author("James", "Joyce");// or use typedef typedef pair<string, string> Author;Author author("Marcel", "Joyce");

生成新的pair对象,除了上述的利用构造函数方法外,标准库中定义的make_pair函数,由传递给它的两个实参生成一个新的pair对象:

pair<string, string> nextAuthor;string first, second;while( cin >> first >> second){    // generate a pair from first and last    nextAuthor = make_pair( first, second );    // process nextAuthor ...}// ornextAuthor = pair<string, string>(first, second);// orcin >> nextAuthor.first >> nextAuthor.second;

参考文献:

  • 《C++ Primer中文版(第四版)》,Stanley B.Lippman et al. 著, 人民邮电出版社,2013。
1 0
原创粉丝点击