我是編程新手,我正在使用本書研究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) –