[問題] 想請教一下std::list的rend/rbegin 的for迴圈用法

看板C_and_CPP (C/C++)作者 (Bad_To_The_Bone)時間11年前 (2014/07/16 16:00), 11年前編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) c++ 問題(Question): 看到一段code 看起來是把有序的list由後往前取item來用 想請教一下為何 for迴圈會用 ++rit 而非 --rit呢 程式碼(Code):(請善用置底文網頁, 記得排版) std::list<int> orderedlist; std::list<int>::const_reverse_iterator orderedlist_rend = orderedlist.rend(); for(std::list<int>::const_reverse_iterator rit = orderedlist.rbegin(); rit!=orderedlist_rend; ++rit) { use *rit; } 假設 orderedlist = {1, 2, 3, 4, 5} 請問 rbegin()是在這邊嗎? ^ | rbegin() rend()又會是在哪邊呢? <--------方向 總覺得好像該由大往小.. 感謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.59.147.226 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1405497644.A.A82.html ※ 編輯: donkeychen (210.59.147.226), 07/16/2014 16:02:00

07/16 16:17, , 1F
把++想像成移動到下一個,不要想成增加位置
07/16 16:17, 1F

07/16 16:31, , 4F
喔 感謝大大 這圖好清楚 (我用bbs的好簡陋XD)
07/16 16:31, 4F

07/17 15:04, , 5F
其實他設計目的 就是讓你把.begin()改.rbegin()的時候
07/17 15:04, 5F

07/17 15:05, , 6F
只要把end改rend 其他都不用改 就可以到轉順序
07/17 15:05, 6F

07/17 15:05, , 7F
只要這樣想就可以了....
07/17 15:05, 7F
文章代碼(AID): #1JnZ4ig2 (C_and_CPP)
文章代碼(AID): #1JnZ4ig2 (C_and_CPP)