本章讲解C++标准程序库中的通用工具。它们是由短小精干的类和函数构成。
Pairs(对组)
class pair可以将两个值视为一个单元。STL内多处使用了pair。尤其容器map和multimap,就是使用pairs来管理key/value的成对元素。
struct pair定义与<utility>:
namespace std{ template <class T1,class T2> struct pair{ //type names for the values typedef T1 first_type; typedef T2 second_type; //member T1 first; T2 second; //default constructor pair():first(T1()),second(T2()) {} //constructor for two values pair(cosnt T1&a,const T2& b):first(a),second(b) {} //copy constructor with implicit conversions template<class U,class V> pair(const pair<U,V>& p):first(p.first),second(p.second) {} }; //comparisons template<class T1,class T2> bool operator==(const pair<T1,T2>&,const pair<T1,T2>&); template<class T1,class T2> bool operator<(const pair<T1,T2>&,const pair<T1,T2>&); ... //convenience function to create a pair template<class T1,class T2> pair<T1,T2> make_pair(const T1&,const T2&); }