函数能否直接返回多个值(即,不返回通过引用获取的参数)?
最佳答案
在 boost::tuple
库中,有 a function called tie
这简化了从返回的 tuple
中获取信息的过程。如果你有一个函数返回一个包含两个 double
的 tuple
并希望将它们加载到两个局部变量 x
和 y
,您可以将函数的返回值分配给 boost::tie(x, y)
。
例子:
#include <math.h>
#include <iostream>
#include <boost/tuple/tuple.hpp>
const double PI = 3.14159265;
boost::tuple<double, double> polar_to_rectangular(double radius, double angle)
{
return boost::make_tuple(radius * cos(angle), radius * sin(angle));
}
int main()
{
double x;
double y;
boost::tie(x, y) = polar_to_rectangular(4, (45 * PI) / 180);
std::cout << "x == " << x << ", y == " << y << std::endl;
return 0;
}
关于c++ - 一个函数可以返回多个值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2571831/