C++
1std::vector<example> ex_vec; // exampleのベクター 2std::vector<example>::iterator itr; // exampleのベクターを指すイテレータ 3 4itr = ex_vec.begin(); 5while(1) 6{ 7 // ベクターの最後の要素をイテレータが指す時 8 if( itr == ex_vec.back() ) 9 { 10 // 処理をする 11 } 12 itr++ 13}
上記のような例で、
イテレータがベクターの最後の要素を指す時に処理を行いたい。
しかし、 if( itr == ex_vec.back() )で「==」のオペランドと一致する演算子==が存在しないエラーが出てしまいます。
.back()はベクターの最後の要素を指す認識で、iteratorとvectorの型も同じにしているのですが、
なぜできないのでしょうか?
何かほかに「vectorの最後の要素とiteratorが一致している」ことが分かる
良い方法があればご教授ください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/27 04:08