2017-02-17 45 views
0

在Modern C++中,我們可以在本地數組上使用std :: end。我想問問這是如何工作的,以瞭解這方面的性能考慮。std :: end如何在本地數組上工作

+1

它的作品[像這樣](http://en.cppreference.com/w/cpp/iterator/end) –

+0

另請參見Motti的答案[這個相關的問題](http://stackoverflow.com/questions/ 4108313 /如何-DO-I-找到-的長度的-一個陣列)。 – juanchopanza

回答

1

如果您有一個大小爲N的名爲a的數組,則std::end(a)a + N的含義相同。它不需要做任何運行時工作來查找數組的大小,因爲大小在編譯時已知。

請注意,std::end不會在指針上工作。它只能在沒有衰減到指針的數組上工作,所以尺寸信息靜態地存在於呼叫站點。

相關問題