イテレータ
C++数値の3桁区切り - memomemo
のなかのイテレータ部分ですー
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
std::vector
リバースイテレータなるもの。
まず イテレーターって? こちらから引用
- 配列やリストのようにデータがいくつか連なっているもの(格納庫)に対して、どの格納庫に対してもすべて同じ方法で、順番にアクセスする方法
- イテレータはポインタのように扱えるように設計されてる
"reverse_iterator" はreverseだからi++で逆順にアクセスできる。
iteratorの種類↓
input_iterator | 前方に移動しながら値を読むことができるイテレータ。インクリメント(ポインタを前方に進める)、比較、参照はずしができる |
output_iterator | 前方に移動しながら値を書き込むことができるイテレータ。インクリメントと参照はずしができる |
forward_iterator | 前方に移動しながら値の読み書きができる。これはinput_iteratorとoutput_iteratorを合体させ、値書き込み機能を追加したものである |
bidirectional_iterator | 前方、後方への移動、値の読み書きができるイテレータ。これはforward_iteratorに似ているが、さらにデクリメント(ポインタを後方に進める)ようにしたものである |
random_iterator | 値の読み書きとランダムアクセスが可能なポインタ。一番強力なポインタである。これはbidirectional_iteratorにポインタ演算機能とポインタ比較機能を追加したものである |
reverse_iterator | random_iteratorやbidirectional_iteratorのような、後方に進むことができるイテレータである |
配列.rbegin()
配列.rend()
配列のイテレーターを取得するやつ
- 逆順の先頭を取得する→ rbegin
- 逆順の末尾(逆順で見たときの最後の要素の次)を取得する→ rend
- 先頭の取得する→ begin
- 最後の要素を取得する→ end
ふむふむ