← 模式

返回多个值

1234567891011121314#include <tuple> std::tuple<int, bool, float> foo() { return {128, true, 1.5f}; } int main() { std::tuple<int, bool, float> result = foo(); int value = std::get<0>(result); auto [value1, value2, value3] = foo();; }

此模式采用 CC0 公共领域贡献 许可。

需要 c++17 或更高版本。其他版本

意图

从一个函数返回多个不同类型的值。

描述

第 3-6 行foo 函数返回一个 std::tuple,表示不同类型的多个值。

第 10 行,我们调用这个函数并存储结果。然后,在第 11 行使用 std::get 获取返回的第一个值。

或者,在第 13 行,我们使用结构化绑定声明来声明和初始化带有返回值的变量。这些变量的类型是自动推导的。

如果这些值紧密且逻辑相关,请考虑将它们组合成一个 structclass 类型。

贡献者

  • Joseph Mansfield

最后更新

2017 年 12 月 11 日

来源

在 GitHub 上 Fork 此模式

分享