Пара (Pair)
Библиотека включает шаблоны для разнородных пар значений. template struct pair { T1 first; T2 second; pair() {} pair(const T1& x, const T2& y) : first(x), second(y) {} }; template inline bool operator==(const pair& x, const pair& y) { return x.first == y.first && x.second == y.second; } template inline bool operator& x, const pair& y) { return x.first < y.first (!(y.first < x.first) && x.second < y.second); }
Библиотека обеспечивает соответствующую шаблонную функцию make_pair, чтобы упростить конструкцию пар. Вместо выражения, например: return pair(5, 3.1415926); // явные типы,
можно написать
return make_pair(5, 3.1415926); // типы выводятся.
template
inline pair make_pair(const T1& x, const T2& y) { return pair(x, y);