C++怎么做到一个函数有多个不同数据类型的返回值
时间: 2024-02-20 21:58:47 浏览: 190
如何编写有多个返回值的C语言函数.pdf
C++ 中可以使用模板(template)来实现一个函数返回多个不同数据类型的值。模板是一种 C++ 的特殊语法,可以根据传入的不同类型参数生成不同的代码。我们可以定义一个模板函数,使用模板参数来表示不同的返回类型,然后在函数中使用条件分支或其他方法来返回不同类型的值。以下是一个示例:
```
template<typename T, typename U>
std::pair<T, U> myFunction() {
T tValue;
U uValue;
// 在这里给 tValue 和 uValue 赋值
return std::make_pair(tValue, uValue);
}
```
在上面的示例中,我们定义了一个模板函数 `myFunction`,它有两个模板参数 `T` 和 `U`,表示函数要返回的两个不同的类型。函数中使用了 `std::pair` 来把两个返回值打包成一个返回值,并使用 `std::make_pair` 函数来构造这个返回值。在函数中,我们可以根据需要给 `tValue` 和 `uValue` 赋值,然后返回一个 `std::pair` 对象。
使用该函数时,需要在调用时指定模板参数的具体类型,例如:
```
auto result = myFunction<int, std::string>();
```
这里我们指定 `T` 为 `int`,`U` 为 `std::string`,则 `result` 的类型为 `std::pair<int, std::string>`,可以用 `result.first` 和 `result.second` 来分别访问两个返回值。
阅读全文