【问题标题】:How to return multiples variables from a function in c++ [duplicate]如何从c ++中的函数返回多个变量[重复]
【发布时间】:2021-01-29 19:17:18
【问题描述】:
string choices()
{
    string ch1 = "1",ch2 = "2",ch3 = "3",ch4 = "4",ch5 = "5",ch6 = "6",ch7 = "7",ch8 = "8",ch9 = "9";
    return ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9;
}

void display(string a,string b,string c,string d,string e,string f,string g,string h,string i)
{
    cout << a << b << c << d << e << f << g << h << i;
    return;
}

int main()
{
    string a,b,c,d,e,f,g,h,i;
    a,b,c,d,e,f,g,h,i = choices(); 
    display(a,b,c,d,e,f,g,h,i);  //display data

    return 0;
}

如何从函数返回多个变量?我需要通过引用传递吗?

【问题讨论】:

  • 为什么需要从一个函数中返回多个值?应该解决的实际和潜在问题是什么?如果只是出于好奇(没关系),请说明。
  • 至于您的问题,您要返回的变量是否密切相关?然后使用结构或类。否则你可以使用std::tuple。或者重新考虑你的设计。
  • 通过引用传递可能是您正在寻找的东西。但目前还不清楚你在问什么
  • 是的,我只是好奇我们是否可以返回多个变量
  • 题外话,但您真的需要 9 个 变量来说明您的问题吗?两个就够了,不是吗?

标签: c++


【解决方案1】:

使用元组和结构化绑定:

auto choices() {
  std::string ch1 = "1",ch2 = "2",ch3 = "3",ch4 = "4",ch5 = "5",ch6 = "6",ch7 = "7",ch8 = "8",ch9 = "9";
  return std::tuple {ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9};
}
auto [a,b,c,d,e,f,g,h,i] = choices();

【讨论】:

  • 不错的解决方案,但参考参数也足够了。
  • 引用是懒人和糟糕设计的解决方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 2013-02-28
  • 2021-04-03
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
相关资源
最近更新 更多