Pair模版是C++ STL中短小精干的结构体,被定义在<utility>头文件中,把两个值视为一个结构单元,如map和multimap都利用了很多pair对组模版,即<键/值>为成对元素,另外函数需要返回两个值的时候,也常用pair模版(当然,结构体也一样方便)。
注意:pair被定义为结构体而不是类,这样一来他的成员都是公有属性,可以直接访问和赋值。
Pair的定义:
std::pair<int,std::string> p(3,“yaoyao”);(C++ 所有标准都是定义在std名称空间中的)
这样一来可以通过p.first访问3,p.second访问”yaoyao”。
Pair的比较:
两个pair类型的变量也可以进行比较大小,但是他们的比较具有优先性,也就是当first与first比较,如果可以比较出结果时,就停止比较,以first比较结果为准,否则才进行second的比较。
例:std::pair<int,std::string> p1(5,”abc”),p2(4.”abc”),p3(5.”abb”);
比较可知 p1>p2 p1<p3 p2<p3.
当且仅当first与second都相等时,他们才相等。
便捷函数make_pair():该函数也可以进行两个成员的代替,好处是不需要指明成员变量类型。使用起来更方便快捷。
例:
用pair表示: std::pair<int,std::string> p(5,”yaoyao”); 将p插入到容器中insert(p);
用make_pair: insert ( make_pair(5,”yaoyao”) );
通过比较可以看到使用make_pair不需要中间变量和类型说明,比较方便。
当然也不是以后都使用make_pair,有些地方需要确切的指明类型,例如对于float的3.14,make_pair会把它当成double处理。所以某些情况下也会带来一定的麻烦。
Pair运用实例:
因为pair始终与map,所以实例见以后的map,这里只需要明白这个概念就可以了!!