在我看來,這取決於這些事實是否是偶然的,或者是因爲它是相同類型的數據。
身高:array
如果這些都與數字,都應該具有相同的類型(即學生對考試4例如等級)。您可能需要重複這些,它們的類型被鏈接...
身高:tuple
或struct
/class
如果這些是4個int
不相關,通常s表示不具有相同的尺寸(例如電阻,最大電壓,電阻的長度)。
另一種決定方式是,你可能在未來某個時候想要改變其中一個值的類型而不是其他值?
現在有些病例在邊緣。例如,一個盒子的長度,寬度和高度是多少?它們都具有相同的尺寸(例如米),但它們具有不同的含義。迭代他們並沒有多大意義。這實際上取決於您在代碼中如何使用它,以及您看到您正在使用的數據的方式。個人而言,在大多數情況下,可以使用tuple
,我寧願使用class
,因爲它提供了更多可讀代碼和更多的進化靈活性:您提供有意義的名稱,您決定屬性的可見性,你可以封裝的信息,可以提供輔助方法......
這種代碼:
BoxSize clothesBoxSize(5, 4, 10);
double volume = clothesBoxSize.Volume();
甚至,如果你想防止混合寬度,長度和高度(見第18項斯科特邁爾斯'Effective C++
):
BoxSize clothesBoxSize(Length(5), Width(4), Height(10));
double volume = clothesBoxSize.Volume();
比更具可讀性,可測試性和maintanable(在我看來):
std::tuple<int, int, int> clothesBoxSize{5, 4, 10};
double volume = clothesBoxSize[0] * clothesBoxSize[1] * clothesBoxSize[2];
兩種可能的解決方案,以*一些*問題......現在這一切都取決於什麼* *具體的問題你正面臨着。請注意,所有問題都不相同,正如所有解決方案不相同。 – Nawaz
取決於你將如何使用它們。 – marom
有什麼問題?添加了 –