[問題] const vector 和 const_iterator的問題

作者: pipi74319 (pipi)   2014-05-05 14:27:05
小弟是買書自學沒多久的新手
最近讀到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呢?
麻煩各位了 感謝
作者: Killercat (殺人貓™)   2014-05-05 16:07:00
const_iterator的意思是「被itor指到的的東西是const」而不是「itor是const」另外你把vector<int>改成vector<const int>的話er...這有點tricky... 要C++11以後 算了 XD 當我沒說
作者: pipi74319 (pipi)   2014-05-05 16:43:00
謝謝K大 我可能有點懂了
作者: ACMANIAC (請肥宅救救肥宅)   2014-05-05 18:09:00
const_iterator 如果是個不能動的指標,那它根本是垃圾..
作者: LPH66 (-6.2598534e+18f)   2014-05-05 18:32:00
可以把 const_iterator 理解成 const xxx* 這種指標
作者: suhorng ( )   2014-05-05 21:37:00
指標可以改,指標指到的內容不能
作者: pipi74319 (pipi)   2014-05-06 09:22:00
謝謝各位 小弟應該可能大概懂了

Links booklink

Contact Us: admin [ a t ] ucptt.com