2017-09-26 5 views
2

USINGコマンドを使用してC++でイテレータを宣言するにはどうすればよいですか?イテレータでusingを使用するには?

using myVectorIterator = std::vector<int>::iterator; 

そして、これが私の

for (myVectorIterator = vector.begin(); myVectorIterator != vector.end(); myVectorIterator++) 

のために、私は '=' でエラーが発生しているとされます '!='。

+0

実際の変数は「ベクトル」ですか? – doctorlove

+0

@doctorlove - 奇妙ですが法的です。私はそれが完全な 'std :: vector'が使われている理由だと思います。 – StoryTeller

+0

私は知っている - 私はこのコードが実際に間違っているコードではないかと思います... – doctorlove

答えて

5

myVectorIteratorはオブジェクトではなく別名です。 autoで、

for(myVectorIterator itr = ...; itr != ...; ++itr) { 
} 

それとも簡単にルートを行く:あなたは、実際のイテレータを宣言する必要がありさえたぶん

for(auto itr = ...; itr != ...; ++itr) { 
} 

最も簡単で、ただの範囲を使用します。

for(int i : vec) { 

} 

選択してください反復ごとに必要なだけ多くの情報を提供するものです。

+0

ありがとう、それは今作動します! –

+2

最初のforループで 'auto'を使う可能性を追加します。 – Banex

関連する問題