首页 > 代码库 > c++几个通用工具

c++几个通用工具

Pairs(对组)

1、class pair可以将两个值视为一个单元,C++标准程序库内多处使用这个class。尤其容器类别map和multimap,就是使用pairs来管理其键值/实值(key/value)的成对元素。任何函数需要返回两个值,都需要pairs

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
              *-T1() and T2() force initialization for built-in types
              */
               pair():first(T1()), second(T2()){
               }

                //constructor for two values
                pair(const 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.a), second(p.b){
                }
      }

//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>&);
... //similar != <= > >=

//convenience function to create a pair
template <class T1, class T2>
pair<T1, T2> make_pair(const T1&, const T2&);

c++几个通用工具