Angew made a comment生ポインタを反復子の型として使用しているvector
が正常であることを確認してください。それはちょっとループのために私を投げた。ポインタをコンテナイテレータとして使用する
私はそれを研究し始め、vector
イテレータのための要件は、彼らは明示的にポインタが適格と述べられている"Random Access Iterators"していることだけであることがわかった:
配列を満たすの要素へのポインタにすべての要件を
コンパイラがデバッグの目的でイテレータをvector
に提供する唯一の理由はあるのですか、実際には私がvector
で逃した要件はありますか?
他の標準ライブラリとの一貫性の可能性が高くなります。 (コンテナ::イテレータi = c.begin(); i!= c.end(); ++ i){...}} 'テンプレートこのように 'iterator'、' begin'と 'end'を提供する限り、あなたが使うコンテナのタイプは気にしません。 – 0x5453
@ 0x5453あなたは何を言っているのか分かりません。明らかに、コンテナはイテレータを返す必要があります。私はちょうど生のポインタを返すことが妥当だとは思わなかった。あなたはその声明に取り組んでいますか、それとも何か他のものに取り組んでいます –
トリッキーな部分は、 'std :: vector :: iterator'のADL関連ネームスペースです。ポインタには、関連する名前空間として 'std'がありません。しかし、標準ではイテレータが関連する名前空間として 'std'を持つ必要はありません。 –
MSalters