問題タブ [const-iterator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - const_iterators は高速ですか?
私たちのコーディング ガイドラインconst_iterator
では、通常の に比べて少し高速であるため、 を優先していますiterator
。を使用すると、コンパイラがコードを最適化するようですconst_iterator
。
これは本当に正しいですか?はいの場合、内部で実際に何が起こってconst_iterator
高速化されますか?.
編集:私はconst_iterator
vsをチェックするための小さなテストを書きiterator
、さまざまな結果を見つけました:
10,000 個のオブジェクトconst_terator
を反復する場合、数ミリ秒 (約 16 ミリ秒) 短縮されました。しかし、常にではありません。両方が等しい反復がありました。
c++ - C ++:const_iteratorの書き方は?
イテレータを使用して独自のコンテナテンプレートを作成しました。const_iteratorを実装するにはどうすればよいですか?
c++ - 一定の正しさ
printMessage で、インデックスを使用して定数クラスのベクトルにアクセスすると正常に動作しますが、反復子 (*itr) では動作しません。イテレータが constant_iterator として宣言されている場合、正常に動作します。
なんで?
どちらの場合も、ベクトルを変更せずにデータを読み取っています。誰かが光を当てることができますか?
c++ - 独自のコンテナクラスのC++イテレータとconst_iteratorの問題
独自のコンテナクラスを作成していますが、頭を悩ませることができない問題が発生しました。これが問題を示す最低限のサンプルです。
これは、コンテナークラスと2つのテストクラスで構成されます。1つはstd:vectorを使用するテストクラスで、2つ目は、まったく同じ方法で独自のコンテナークラスを使用しようとしますが、コンパイルに失敗します。
gccは私に言います:
test2.C:メンバー関数内'void TestClassMyContainer :: test()':
test2.C:51:エラー:「MyContainer::iterator」から非スカラー型「MyContainer::const_iterator」への変換が要求されました
コンパイラーが、STLベクトルクラスではなく、自分のクラスのイテレーターをconst_iteratorに変換する場所と理由がわかりません。私は何が間違っているのですか?
c++ - カスタムイテレータとconst_iteratorsを正しく実装する方法は?
iterator
とクラスを記述したいカスタムコンテナクラスがありconst_iterator
ます。
私はこれまでこれを行ったことがなく、適切なハウツーを見つけることができませんでした。イテレータの作成に関するガイドラインは何ですか?また、何に注意する必要がありますか?
また、コードの重複を避けたいと思います(私はそれを感じ、多くのことconst_iterator
をiterator
共有しています。一方が他方をサブクラス化する必要がありますか?)。
脚注:Boostにはこれを緩和する何かがあると確信していますが、多くの愚かな理由から、ここでは使用できません。
c++ - max_element & iterator = 3x 遅い c++ 関数
私が開発しているプログラムは、次の関数を呼び出すと 3 倍遅くなります。数百万回呼び出されなくても悪くないでしょう。
periodos
この関数を大幅に高速化する別の方法はありますか?
ルイス
c++ - const_iteratorとiteratorの違いは何ですか?
STL内での実装に関して、これら2つの違いは何ですか。パフォーマンスの違いは何ですか?「読み取り専用」でベクトルをトラバースするときは、私たちが好むconst_iterator
と思いますよね?
ありがとうございました。
language-agnostic - 反復されたものはどのように呼び出されますか?
イテレータが const である (つまり、インクリメントまたはデクリメントできない) が、それが生成するものは非 const であることを表現したかったのです。
がポインターの場合iterator
、次のように言えます。
ポインタ // イテレータ
pointee // それがもたらすもの
しかし、それがポインターでない場合、私にはわかりません。「pointee」の代わりに使用することを考えcontainer
ましたが、イテレータはコンテナーにまったく関連付けられていません。たとえば、入力反復子をファイルまたは STDIN に関連付けることができます。以下は機能し、他の人によって使用されていますか?
イテレータ // イテレータ
iteratoo // 生成されるもの
ご指導よろしくお願いします!