一般的な双方向反復子を取る関数を作成する前に、int のベクトルに対してどのように機能するかをテストしたいと思いました。
vector<int> a(10,1);
iterator<bidirectional_iterator_tag, int> i = a.begin();
for (; i != a.end(); ++i) cout << *i;
このコードはコンパイルされません。g++ は、begin() の戻り値の型を変換できずiterator<bidirectional_iterator_tag, int>
、演算子++
および*
が定義されていないと文句を言います。明らかに私は何か間違ったことをしています。助けていただければ幸いです。