我想制作如下功能:
list<string> or list<std::pair<string, string>> get(int a){
list<string> a;
list<std::pair<string, string>> b;
if(a == 1)
return a;
else
return b;
}
whai是如上所述的最佳功能吗?
答案 0 :(得分:3)
你不能。 C ++是静态类型,这意味着您无法在运行时更改函数的返回类型。
但你可以使用元组做一些事情,尽管你可以找到活跃的成员:
std::tuple<list<string>, list<std::pair<string, string>>> x_y_problem()
{
return std::make_tuple/*ToDo populate as you need*/
}
并在通话现场:
list<string> x;
list<std::pair<string, string>> y;
std::tie(x, y) = x_y_problem();
参考:http://en.cppreference.com/w/cpp/utility/tuple/make_tuple