1. ホーム
  2. c++

[解決済み] C++のVectorをforループで反復処理する

2022-03-11 08:02:12

質問

C++言語初心者です。ベクトルを使うようになってから、ベクトルをインデックスで反復処理するすべてのコードで、最初のパラメータである for ループは常にベクターに基づいた何かです。Javaでは、ArrayListでこのようなことをするかもしれません。

for(int i=0; i < vector.size(); i++){
   vector[i].doSomething();
}

C++でこれを見ないのは何か理由があるのでしょうか?悪い習慣なのでしょうか?

どのように解決するのですか?

<ブロッククオート

C++でこれを見ないのは何か理由があるのでしょうか?悪い習慣なのでしょうか?

いいえ、バッドプラクティスではありませんが、次のアプローチでは、あなたのコードが確実にレンダリングされます。 柔軟性 .

通常、C++11以前では、コンテナ要素を反復処理するコードはイテレータを使用し、次のようなものでした。

std::vector<int>::iterator it = vector.begin();

これは、コードの柔軟性を高めるためです。

すべての標準ライブラリコンテナはイテレータをサポートし、提供します。もし開発の後の段階で他のコンテナに変更する必要がある場合でも、このコードを変更する必要はありません。

注意 あらゆる標準ライブラリコンテナで動作するコードを書くことは、見た目ほど簡単ではありません。