c ++ select list <string>和list <std :: pair <string,string =“”>&gt;之间的返回类型

时间:2017-09-13 08:37:04

标签: c++ list types return

我想制作如下功能:

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是如上所述的最佳功能吗?

1 个答案:

答案 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