C++11提供了pair可以将两个类型的数据封装到一个对象中,比如当某个函数需要返回两个值时,可以使用pair进行封装,然后通过其成员first和second进行读取:
#include <iostream>#include <string>using namespace std;auto getPersonInfo(){return pair<string, int>("xiaoming", 10);}int main(){auto info = getPersonInfo();cout<<info.first<<" "<<info.second<<endl;return 0;}
运行程序输出:xiaoming 10
通过pair的显示构造有的时候稍显得有些麻烦,可以通过make_pair进行简化。
make_pair不需要指定模板类型,可以直接通过值生成pair对象:
#include <iostream>#include <string>using namespace std;auto getPersonInfo(){return make_pair("xiaoming", 10);}int main(){auto info = getPersonInfo();cout<<info.first<<" "<<info.second<<endl;return 0;}
运行程序输出:xiaoming 10