從Effective C++,第3項C++:使用常量與STL迭代器
/* case1 */ const std::vector<int>::iterator i // i acts like a T* const
/* case2 */ std::vector<int>::const_iterator ci // ci acts like a const T*
記住如何const
適用,我曾經記得this article
基本上 '常量' 以下適用於任何 在它的左側(不包括 ,如果沒有任何其他 的情況,它適用於它的任何 直接右側)。
當我第一次讀到書中的第3項時,我預料它會在case1和case2中相反。
我應該將此案例視爲例外嗎?還是有一些更深層次的理解,我錯過了?
一個地方,我發現第一個案例是有用的保存搜索的輸出,從'std :: find_if'說。 'const std :: vector :: iterator i = std :: find_if(...);'說我想記住搜索的結果,並且我不想無意中改變結果。 –
SCFrench
2010-07-25 18:18:56