首先了解下pair工具类:
这个类在头文件<utility>,功能:将俩个类型可能不一样的值组合在一起。,通过first和second来访问这两个值。还定义了operator == 和operator <用来比较两个值;
看实例:
#include <iostream> #include <map> #include <utility> int main() { std::pair<int ,std::string> myPair(5,"hello"); std::pair<int ,std::string> myOtherPair; myOtherPair.first = 4; myOtherPair.second = "world"; std::pair<int,std::string> myThirdPair(myOtherPair); if(myPair < myOtherPair) { std::cout << "myPair < myOtherPair" << std::endl; }else { std::cout << "myPair > myOtherPair" << std::endl; } if(myOtherPair == myThirdPair) { std::cout << "myOtherPair == myThirdPair" << std::endl; } else { std::cout << "myOtherPair != myThirdPair" << std::endl; } return 0; }
结果是:
myPair > myOtherPair
myOtherPair == myThirdPair
这个库也提供了make_pair<>的工具模板;通过make_pair()来构建一个pair;
std::pair<int,std::string> myPair = std::make_pair(4,"hello"); std::cout << myPair.first << " " << myPair.second << std::endl;
结果是: 4 hello
map的模板接受四个参数,其中后两个参数可以省略,分别是:健,值,比较类型,分配器类型,是将健映射到值上。