人小鬼不大

导航

 

1、简介

  要了解 STL 中的 pair 类模板,因为关联容器的一些成员函数的返回值是 pair 对象,而且 map 和 multimap 容器中的元素都是 pair 对象。

2、pair的定义

 1 template <class_Tl, class_T2>
 2 struct pair
 3 {
 4   _T1 first;
 5   _T2 second;
 6   pair(): first(), second() {} //用无参构造函数初始化 first 和 second
 7   pair(const _T1 &__a, const _T2 &__b): first(__a), second(__b) {}
 8   template <class_U1, class_U2>
 9   pair(const pair <_U1, _U2> &__p): first(__p.first), second(__p.second) {}
10 };
View Code


pair 模板中的第三个构造函数是函数模板,参数必须是一个 pair 模板类对象的引用。如:
  pair<int,int> p3(pair<char,char>('a','b'));

  pair实例化出来的类都有两个成员变量,一个是 first, 一个是 second。STL 中还有一个函数模板 make_pair,其功能是生成一个 pair 模板类对象。
源码如下:

1 template <class T1, class T2>
2 pair<T1, T2 > make_pair(T1 x, T2 y)
3 {
4   return ( pair<T1, T2> (x, y) );
5 }
View Code
posted on 2020-01-20 15:07  人小鬼不大  阅读(238)  评论(0编辑  收藏  举报