[解決済み] std::vectorのイテレータのインデックスを取得する最も効果的な方法は何ですか?
2022-03-19 03:01:41
質問
ベクトルに対して反復処理をしていて、イテレータが現在指しているインデックスが必要です。AFAIKでは、これは2つの方法で行うことができます。
-
it - vec.begin()
-
std::distance(vec.begin(), it)
これらの方法の長所と短所は何でしょうか?
どのように解決するのですか?
できれば
it - vec.begin()
Naveenが述べたのと逆の理由で、正確には
はないでしょう。
ベクトルをリストに変更すると、コンパイルされます。もし、すべての反復処理中にこれを行うと、O(n)アルゴリズムをO(n^2)アルゴリズムに簡単に変えてしまうことができます。
また、反復中にコンテナ内を飛び回らないのであれば、インデックスを2つ目のループカウンタとして保持する方法もあります。
注
it
は、コンテナ・イテレータの一般的な名前です。
std::container_type::iterator it;
.
関連
-
[解決済み】識別子 "string "は未定義?
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] std::vectorをハードコードされた要素で初期化する最も簡単な方法は何ですか?
-
[解決済み] std::vector に対する反復処理: 符号なしインデックス変数と符号ありインデックス変数の比較
-
[解決済み] C++におけるstd::vectorとstd::arrayの比較
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
-
[解決済み】C++ STL Vectors: インデックスからイテレータを取得する?
最新
-
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++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】C++ STL Vectors: インデックスからイテレータを取得する?