天天看點

rbegin 和 end 差別

在使用C++的STL時,經常會用到疊代器,那麼不得不搞清楚裡面的一些指針 begin(), end(), rbegin(), rend()之間的差別與聯系,以及它們分别都指向哪個元素。首先要明白的一點是它們都是指針,其中begin()指向第一個元素,我們容易誤認為end()是指向最後一個元素,其實不是的,end()是指向最後一個元素的下一個。這就是為什麼我們在使用map或是unordered_map來查找某個值時都要和end()比較呢,因為如果等于end()了,則說明所有的元素都周遊過一遍了,也包括最後一個元素。rbegin()指向最後一個元素,rend()指向第一個元素,和begin()相等。

繼續閱讀