2013-11-25 46 views

回答

12

std::begin/end的好處是它可以用於數組。但是它只能作爲數組的名稱空間作用域函數來實現。因此,在通用代碼中,最好有std::begin/end,以便通用代碼在需要begin/end時無需決定是否需要使用名稱空間範圍或成員函數。

但我知道std::clear沒有這種類比。它只能用於具有成員clear()的容器。如何在通用代碼中使用它(至少不是我能想到的)並沒有困難。

+0

感謝您的回覆。 –

+0

此外,我可能是錯誤的,但我覺得他們需要'std :: begin'和'std :: end'的一半原因是這樣的陣列將基於循環範圍工作 – aaronman

+0

@aaronman:其實基於範圍-for被操縱,所以即使沒有包含'',它也能正常工作。 –

相關問題