読者です 読者をやめる 読者になる 読者になる

iterator

vectorなどの複数の要素を持つクラスをコンテナと呼び、このコンテナの要素を繰り返し取り出すための概念としてイテレータ(反復子)というのがある・・・。

iterator - C++ Reference

イテレータを使って要素を参照(取得)してみる・・・。

iteratorvectorでインクルードされているので、ここでインクルードする必要は無いが一応・・・。

型名をstd::vector::iteratorとしてitorを宣言すると、vector<int>用のイテレータとなる・・・。

vecに3つ要素を追加・・・。

vec.beginでvecの先頭を取得し、itorにセット・・・。
そこから、vec.endがvecの最後尾(最後の要素ではなく、その後ろの部分。)なので、itorが++でそこに行くまで繰り返す・・・。
まるでポインタ演算のようにインクリメントでvecの要素を順に移動していける・・・。

*itorでvecの要素を参照できるのでそれを出力・・・。

$ vi iterator.cpp
$ g++ iterator.cpp -o iterator
$ ./iterator
*itor = 0
*itor = 10
*itor = 20
$

こんな感じでイテレータでvecの要素を参照できた・・・。

イテレータを使うと、挿入や入れ替えなど高度な処理もできるが、それは追々・・・。

Sample/cpp/iterator/iterator/src/iterator at master · bg1bgst333/Sample · GitHub