好き勝手に・げーあにん?

ファミコンと同い年の社会人ヌルオタの日記

const_reverse_iterator どうなってんだ‥‥

for (list<int>::const_reverse_iterator it = a.rbegin(); it != a.rend(); ++it)

VC++ 9.0 なら普通に動く。gcc だとコンパイルエラー。

error:no match for 'operator!=' in 'it != ((std::list >*)a)->std::list<_Tp, _Alloc>::end [with _Tp = int, _Alloc = std::allocator]()'

どうなってんだこれ‥‥

つか、未だに reverse_iterator がよくわかってない事に気づいた。reverse_iterator から iterator にするときは ri.base() とか (++ri).base() でいいとして、iterator から reverse_iterator ってできないんだっけ? とか。reverse_iterator で erase の戻り値欲しいときとかどうすりゃいいんだ。