[問題] const vector 和 const_iterator的問題

看板C_and_CPP作者 (pipi)時間11年前 (2014/05/05 14:27), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/1
小弟是買書自學沒多久的新手 最近讀到const vector和const_iterator的部分 有段敘述小弟無法理解 請各位前輩解惑 敘述如下: const vector<int> nines(10, 9); vectot<int>::const_iterator it = nines.begin(); *it = 10; //錯誤:*it是const ++it; //沒問題:it不是const 為什麼*it是const 但是it不是const呢? 麻煩各位了 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.28.37 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1399271228.A.56B.html

05/05 16:07, , 1F
const_iterator的意思是「被itor指到的的東西是const」
05/05 16:07, 1F

05/05 16:07, , 2F
而不是「itor是const」
05/05 16:07, 2F

05/05 16:08, , 3F
另外你把vector<int>改成vector<const int>的話
05/05 16:08, 3F

05/05 16:08, , 4F
er...這有點tricky... 要C++11以後 算了 XD 當我沒說
05/05 16:08, 4F

05/05 16:43, , 5F
謝謝K大 我可能有點懂了
05/05 16:43, 5F

05/05 18:09, , 6F
const_iterator 如果是個不能動的指標,那它根本是垃圾..
05/05 18:09, 6F

05/05 18:32, , 7F
可以把 const_iterator 理解成 const xxx* 這種指標
05/05 18:32, 7F

05/05 21:37, , 8F
指標可以改,指標指到的內容不能
05/05 21:37, 8F

05/06 09:22, , 9F
謝謝各位 小弟應該可能大概懂了
05/06 09:22, 9F
文章代碼(AID): #1JPoyyLh (C_and_CPP)