- C++相談室 part117 [転載禁止]©2ch.net
343 :デフォルトの名無しさん[]:2015/06/13(土) 20:33:52.62 ID:6grWS76k - イテレーターは欠陥だと思う
イテレーターがポインターだったら ++iteratorが使えないだろ イテレーターに基底ポリモーフィズム使いたいときどうすんの ただしくは add(iterator)のようなインライン関数でラッピングするのがよいだろう
|
- C++相談室 part117 [転載禁止]©2ch.net
346 :デフォルトの名無しさん[]:2015/06/13(土) 20:46:13.99 ID:6grWS76k - iterator->operator++あるいは++(*iterator)
ここまでいえばさすがにわかるでしょwww
|
- C++相談室 part117 [転載禁止]©2ch.net
351 :デフォルトの名無しさん[]:2015/06/13(土) 20:58:02.47 ID:6grWS76k - ベースクラスポリモーフィズムのことだとわかるが
begin()の戻り値がイテレーターのポインターだった場合どうするのか 考えてみよう 猿でもわかると思うが
|
- C++相談室 part117 [転載禁止]©2ch.net
356 :デフォルトの名無しさん[]:2015/06/13(土) 21:09:22.11 ID:6grWS76k - >>353
++(*iterator)をアルゴリズムの中でつかえば ++iteratorがアルゴリズムの中で使えなくなり その逆も成り立つ >>354 現実にありまくり
|
- C++相談室 part117 [転載禁止]©2ch.net
359 :デフォルトの名無しさん[]:2015/06/13(土) 21:20:05.04 ID:6grWS76k - >>357
俺の書いたプログラムには出てくるのだから その確率は高いだろ >>358 f(c.begin())としたときc.begin()がポインターであるときと そうではないときを比べてみよう
|
- C++相談室 part117 [転載禁止]©2ch.net
361 :デフォルトの名無しさん[]:2015/06/13(土) 21:23:08.86 ID:6grWS76k - イテレーターはコンセプト、ポインターじゃないよ
|
- C++相談室 part117 [転載禁止]©2ch.net
366 :デフォルトの名無しさん[]:2015/06/13(土) 21:34:39.10 ID:6grWS76k - 引数でイテレーターを渡すときは何とかなるが
アルゴリズムの中でイテレーターを使うときに一番困るんだよな
|
- C++相談室 part117 [転載禁止]©2ch.net
374 :デフォルトの名無しさん[]:2015/06/13(土) 22:32:57.64 ID:6grWS76k - 基底コンテナからの派生コンテナにおいて
基底コンテナのポインターに代入された派生コンテナを考えてみよう このとき基底コンテナのポインターからどのように派生コンテナのイテレーターをえるのか あるアルゴリズムの引数として基底クラスのコンテナを渡しアルゴリズムの内部で イテレーターを得てつかうとする そのほかにもこの方法は有用な使い方がある例えばイテレーターとして beginイテレーターとendイテレーターのペアをイテレータと考える そしてhasNextとnextというおなじみのインライン関数をを自分で定義して使う
|