2014-07-14 73 views
2

我最近學會了如何使用std :: tuple(我在此之前從未需要它),並且很好奇它是何時在容器上使用它的恰當時機?我只問,因爲std :: tuple感覺不像一個容器,因爲它需要諸如std :: get和std :: make_tuple之類的東西。正確使用std :: tuple?

+0

當您需要的值超過[一對](http://en.cppreference.com/w/cpp/utility/pair)值時,我認爲。您還可以將['std :: tuple'](http://en.cppreference.com/w/cpp/utility/tuple)作爲一種匿名結構。 –

+0

是的,謝謝。我實際上忘記了std :: pair,所以我應該改變它,因爲它只有兩個對象 – DTSCode

+4

相關:我更經常使用的元組之一,[使用'std :: tie'的字典學比較邏輯](http:// en.cppreference.com/w/cpp/utility/tuple/tie)。特別注意鏈接文檔中的示例。 – WhozCraig

回答

8

std::tuple s包含固定數量的不同類型的元素。當你想將不同類型的幾個對象組合在一起時,可以使用它。當分組沒有任何特別有用的語義時,我會在struct上使用它。例如,當函數需要返回多個對象時,std::tuple很有用。另一方面,容器包含多個相同類型的元素(可能數量不等)。

8

它比一個容器更像是一個結構的替代品。但是,在大多數情況下,出於可讀性的原因,最好定義一個結構體。元組最適用於具有可變數量參數的模板。

相關問題