作者tac0wu (他口)
看板C_and_CPP
標題[問題] pass iterator by reference
時間Fri Aug 10 08:41:30 2012
最近在練習寫點小程式的時候
剛好遇到一個問題需要將一個iterator傳進fuction中,
而該function會對iterator做些移動(++iterator),
因為本身function有其他需要回傳的值,
所以就沒有將iterator回傳,對我來說這直覺地解法就是用
pass iterator by reference 的方式
(ex. double foo(vector<int>::iterator & it))
不過蠻意外,這樣code不能被compiler接受
要加const才能過(加上const對我來說就沒有pass reference的必要)
在網路上查了一陣子 還沒找到很能說服我的說法
目前看起好像是來封裝保密的問題?
不知道版友們能不能給我一些看法或想法
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.30.138.2
→ shadow0326:貼一下你的code吧 08/10 10:37
→ BlazarArc:const是說 const <>::iter & or <>::const_iter & ? 08/10 11:20
→ tac0wu:const <>::iter 08/10 13:24
→ tac0wu:該不會是begin回傳出來的東西是const <>::iterator orz 08/10 13:34
→ adxis:原本的寫法傳給func()的是一個暫存值(rvalue ref 08/10 13:55