reverse_iteratorのメモ。
reverse_iteratorは通常のiterator(反復子)と逆向きに要素を横断するための逆転反復子。
図示すると以下の通り。
向きが逆なだけでなく、順方向と一部用法が違ったので注意。
eraseするとき、順方向なら
// std::set a_set;
std::set::iterator ite = a_set.begin();
a_set.erase(ite++);
こういう感じだが、reverseだと
std::set::reverse_iterator rev_ite = a_set.rbegin();
a_set.erase(--rev_ite.base());
になる。
0 件のコメント:
コメントを投稿