|
|
make_pair , operator!= , operator> , operator>= , operator< , operator<= , operator== , pair - defines several templates of general utility (standard template library)
namespace std { template<class T, class U> struct pair; // TEMPLATE FUNCTIONS template<class T, class U> pair<T, U> make_pair(const T& x, const U& y); template<class T, class U> bool operator==(const pair<T, U>& x, const pair<T, U>& y); template<class T, class U> bool operator!=(const pair<T, U>& x, const pair<T, U>& y); template<class T, class U> bool operator<(const pair<T, U>& x, const pair<T, U>& y); template<class T, class U> bool operator>(const pair<T, U>& x, const pair<T, U>& y); template<class T, class U> bool operator<=(const pair<T, U>& x, const pair<T, U>& y); template<class T, class U> bool operator>=(const pair<T, U>& x, const pair<T, U>& y); namespace rel_ops { template<class T> bool operator!=(const T& x, const T& y); template<class T> bool operator<=(const T& x, const T& y); template<class T> bool operator>(const T& x, const T& y); template<class T> bool operator>=(const T& x, const T& y); }; };
Include the STL
standard header <utility>
to define several templates of general use
throughout the Standard Template Library.
Four template operators --
operator!=
,
operator<=
,
operator>
, and
operator>=
-- define a
total ordering
on pairs of operands of the same type, given definitions of
operator==
and operator<
.
If an implementation
supports namespaces,
these template operators are defined in the
rel_ops
namespace,
nested within the std
namespace.
If you wish to make use of these template operators,
write the declaration:
using namespace std::rel_ops;
which promotes the template operators into the current namespace.
template<class T, class U> pair<T, U> make_pair(const T& x, const U& y);
The template function returns
pair<T, U>(x, y)
.
template<class T> bool operator!=(const T& x, const T& y); template<class T, class U> bool operator!=(const pair<T, U>& x, const pair<T, U>& y);
The template function returns !(x == y)
.
template<class T, class U> bool operator==(const pair<T, U>& x, const pair<T, U>& y);
The template function returns
x.first == y.first &&
x.second == y.second
.
template<class T, class U> bool operator<(const pair<T, U>& x, const pair<T, U>& y);
The template function returns
x.first < y.first ||
!(y.first < x.first &&
x.second < y.second)
.
template<class T> bool operator<=(const T& x, const T& y); template<class T, class U> bool operator<=(const pair<T, U>& x, const pair<T, U>& y);
The template function returns !(y < x)
.
template<class T> bool operator>(const T& x, const T& y); template<class T, class U> bool operator>(const pair<T, U>& x, const pair<T, U>& y);
The template function returns y < x
.
template<class T> bool operator>=(const T& x, const T& y); template<class T, class U> bool operator>=(const pair<T, U>& x, const pair<T, U>& y);
The template function returns !(x < y)
.
template<class T, class U> struct pair { typedef T first_type; typedef U second_type T first; U second; pair(); pair(const T& x, const U& y); template<class V, class W> pair(const pair<V, W>& pr); };
The template class stores a pair of objects,
first
,
of type T
, and
second
,
of type U
. The type definition
first_type
,
is the same as the template parameter T
, while
second_type
,
is the same as the template parameter U
.
The first (default) constructor initializes
first
to T()
and second
to U()
. The second constructor initializes
first
to x
and second
to y
. The third (template) constructor initializes
first
to pr.first
and second
to pr.second
. T
and U
each
need supply only a default constructor, single-argument constructor,
and a destructor.
Copyright © 1992-1996 by P.J. Plauger. Portions derived from work copyright © 1994 by Hewlett-Packard Company. All rights reserved.