[解決済み】C++のVectorをforループで反復処理する。
2022-04-06 02:50:28
質問
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();
これは、コードの柔軟性を高めるためです。
すべての標準ライブラリコンテナはイテレータをサポートし、提供します。もし開発の後の段階で他のコンテナに変更する必要がある場合でも、このコードを変更する必要はありません。
注意 あらゆる標準ライブラリコンテナで動作するコードを書くことは、見た目ほど簡単ではありません。
関連
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] 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++でint型に無限大を設定する
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] std::vector に対する反復処理: 符号なしインデックス変数と符号ありインデックス変数の比較
-
[解決済み】配列のインデックスの代わりにイテレータを使用する理由は?