C++ 在 lists<string> 和 list<std::pair<string, string>> 之间选择返回类型

标签 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;

}

实现上述功能的最佳方法是什么?

最佳答案

你不能。 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

关于C++ 在 lists<string> 和 list<std::pair<string, string>> 之间选择返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46192735/

相关文章:

list - Golang 中 LinkedList<T> 的等价物是什么

string - 如何将字符串列表转换为方案中的一个字符串?

R 迭代列表中的连续对

string - 将整数转换为lua中的字符串?

c++ - 嵌套类 : how to access the member variable in enclosed class

c++ - 如何打印 std::map<int, std::vector<int>>?

c - 结构名称的数据类型是什么

haskell - Bifunctor 实例定义上的类型签名不匹配

c++ - 如何遍历字符串数组并为不同的字符串应用函数?

c++ - 按升序对链表进行排序 C++