我是编程新手,我正在使用本书研究C++编程语言:编程原理和使用C++的练习。我今天来到这里,因为在第8章的结尾,笔者着重功能,提出了一种锻炼邀请学生去思考更好的解决一个问题:从函数返回值:参考vs结构
编写发现功能的最小矢量参数的最大元素,并计算均值和中值。不要使用全局变量。返回一个包含结果的
struct
或通过引用参数传递它们。你更喜欢哪一个返回几个值?为什么?
现在,通常我不会定义一个函数来执行多个动作,但在这种情况下,我必须创建一个函数并考虑如何返回多个值。我的第一个方法是创建一个函数,引用参数是这样的:
void my_func(
vector<double>& numbers,
double& min,
double& max,
double& mean,
double& median
);
但随着写程序怎么回事,我开始认为这个解决方案中使用的参数太多,也许提出了另一种解决方案(使用struct
)会更好。你将如何使用struct
来解决这个问题?你如何从函数中返回多个值?
您不会从函数返回多个值,这是不可能的。相反,您返回*一个*结构实例,其中包含多个成员(例如'min','max'等成员)。 –
只要有用和可能,请使用[封装](https://en.wikipedia.org/wiki/Encapsulation_(computer_programming))。在这里它是可能的和有用的,因此你应该在答案中使用一个结构(例如stats)。 – HelloWorld
如果你正在使用C++ 11,你可能想看看[std :: tuple](http://en.cppreference.com/w/cpp/utility/tuple) –