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