[解決済み] 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();
これは、コードの柔軟性を高めるためです。
すべての標準ライブラリコンテナはイテレータをサポートし、提供します。もし開発の後の段階で他のコンテナに変更する必要がある場合でも、このコードを変更する必要はありません。
注意 あらゆる標準ライブラリコンテナで動作するコードを書くことは、見た目ほど簡単ではありません。
関連
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] 配列の反復処理に "for...in "を使用するのは、なぜ良くないのでしょうか?
-
[解決済み] Bashで変数で定義された数値の範囲を反復処理するにはどうすればよいですか?
-
[解決済み] Javaでenumを繰り返し処理するためのforループ
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】2つのリストを並列に反復処理する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み] std::vector に対する反復処理: 符号なしインデックス変数と符号ありインデックス変数の比較
-
[解決済み】配列のインデックスの代わりにイテレータを使用する理由は?