SGI

pair<T1, T2>

分类:实用工具 组件类型:类型

描述

Pair<T1,T2>是一个非同构对:它持有 type 的一个对象T1以及 type 的一个对象T2. Pair 与 Container 很像,因为它“拥有”自己的元素。然而,实际上它并不是 Container 的模型,因为它并不支持用于访问 Container 的元素的标准方法(例如 迭代器)。

需要返回两个值的函数常常会返回 apair.

示例

pair<bool, double> result = do_a_calculation();
if (result.first)
  do_something_more(result.second);
else
  report_error();

定义

在标准头文件中定义 utility,以及在非标准后向兼容性头文件中定义 pair.h

模板参数

参数 描述 默认值
T1 存储在中的第一个元素的类型pair  
T2 存储在中的第二个元素的类型pair  

模型

可分配

类型要求

T1T2都必须是 Assignable 的模型。其他操作还有其他要求。Pair's 默认构造函数仅能用于两种情况T1T2DefaultConstructible,operator==仅能用于两种情况T1T2EqualityComparable, 并且operator<仅能用于两种情况T1T2LessThanComparable.

公共基类

无。

成员

成员 定义位置 描述
first_type pair 见下文。
second_type pair 见下文。
pair() pair 默认构造函数。见下文。
pair(const first_type&, const second_type&) pair pair 构造函数。见下文。
pair(const pair&) 可分配 拷贝构造函数
pair& operator=(const pair&) 可分配 赋值运算符
first pair 见下文。
second pair 见下文。
bool operator==(const pair&, const pair&) pair 见下文。
bool operator<(const pair&, const pair&) pair 见下文。
template <class T1, class T2>
pair<T1, T2> make_pair(const T1&, const T2&)
pair 见下文。

新成员

这些成员未在 Assignable 要求中定义,但特定于pair.
成员 描述
first_type pair 的第一个组件的类型。这是一个typedef用于模板参数T1
second_type pair 的第二个组件的类型。这是一个typedef用于模板参数T2
pair() 默认构造函数。它使用 type 的对象构造T1T2使用它们的默认构造函数。仅能用于两种情况T1T2DefaultConstructible.
pair(const first_type& x, const second_type& y) pair 构造函数。构造 a pair 使得firstxsecondy.
first 存储在的 type 公共成员变量first_type: 存储在的第一个对象pair.
second 存储在的 type 公共成员变量second_type: 存储在的第二个对象pair.
template <class T1, class T2>
bool operator==(const pair<T1,T2>& x, 
                const pair<T1,T2>& y);
等式运算符。返回值为true当且仅当xy的第一个元素相等,并且xy的第二个元素相等。仅能用于两种情况T1T2相当EqualityComparable。这是一个全局函数,不是成员函数。
template <class T1, class T2>
bool operator<(const pair<T1,T2>& x, 
               const pair<T1,T2>& y);
比较运算符。它使用词典比较:返回值为true如果x的第一个元素小于y的第一个元素,以及false如果y的第一个元素小于x。如果不是上述情况,则operator<返回比较xy的第二个元素的结果。此运算符仅可用于T1T2LessThanComparable。这是一个全局函数,不是成员函数。
template <class T1, class T2>
pair<T1, T2> make_pair(const T1& x, const T2& x)
等同于pair<T1, T2>(x, y)。这是一个全局函数,不是成员函数。它的存在仅是为了更方便。

注意事项

另请参见

可赋值默认可构造可比较
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 TrademarkInformation