■47735 / inTopicNo.6) |
Re[5]: Listによる管理とイテレータでの処理 |
□投稿者/ 774RR (488回)-(2010/03/12(Fri) 17:04:15)
|
おお、これはまさに満点回答、すばらしい。 ということで前回のレスでは故意に挙げなかった参考ページとか。 http://marupeke296.com/TIPS_No12_ListElementErase.html
前置 inc/dec と後置 inc/dec は ・副作用は同じ ・部分式自体の値は違う というあたりは理解できている、と思う。 int x=3; int y= x++; // y=3, x=4 になる int z= ++x; // z=5, x=5 になる
iterator に対して ++ -- を適用するときも同様のセマンティクス(意味)になるように operator ++ や operator -- は作られているため、 ・前置 ++ はイテレータ変数を1つ進め、式の値は進めた後の値になる ・後置 ++ はイテレータ変数を1つ進め、式の値は進める前の値になる となっている。
純粋にイテレータを前後させたいだけならば式の値は不要なわけで、 ・前の値を保持しておく必要が無く実装が簡単になる前置 ++ -- を使うほうがよく、 ・前の値を保持しておく必要があり実装が複雑になる後置 ++ -- を使わないほうがよい、 とされている。
|
|