我们写函数的时经常会遇到这样的情况,需要返回多个数据,例如:
std::string getStudentInfo(int &i) {
i = 100;
return "wang"
}
这个函数原本的想法是想获得学生信息(名字,学号),但是返回值只能一个,怎么能同时返回(名字,学号)呢?额,当然,你说返回一个类啥的都可以,但是如果每次都是为了返回值创建一个类,那是不是有点繁琐啊。这里推荐大家使用std::tuple的方法来实现同时返回多个数据的返回数值。方法如下:
#include <tuple>
#include <type_traits>
#include <string>
#include <iostream>
//使用std::tuple定义返回值
std::tuple<std::string,int> getValue() {
return std::make_tuple("wang",100);
}
int main() {
std::string name;
int number;
//使用std::tie获取返回数值,注意name和number需要提前定义一下。
std::tie(name,number) = getValue();
std::cout<<"name is "<<name<<",number is "<<number;
return 0;
}
obotcha在实现网络的时候通常需要返回数据和状态码,所以采用了这个方法。哈哈。大家有兴趣的话可以看一下obotcha的github。
GitHub - wangsun1983/Obotcha: Tool library writen by C++14