問題タブ [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.

0 投票する
11 に答える
14996 参照

c++ - const_iterators は高速ですか?

私たちのコーディング ガイドラインconst_iteratorでは、通常の に比べて少し高速であるため、 を優先していますiterator。を使用すると、コンパイラがコードを最適化するようですconst_iterator

これは本当に正しいですか?はいの場合、内部で実際に何が起こってconst_iterator高速化されますか?.

編集:私はconst_iteratorvsをチェックするための小さなテストを書きiterator、さまざまな結果を見つけました:

10,000 個のオブジェクトconst_teratorを反復する場合、数ミリ秒 (約 16 ミリ秒) 短縮されました。しかし、常にではありません。両方が等しい反復がありました。

0 投票する
6 に答える
11958 参照

c++ - const_iterators よりも iterators を優先する必要がありますか?

ここの誰かが最近、Scott Meyers から次のような記事を取り上げました。

  • 優先する( iteratorspdfリンク)。const_iterators

他の誰かが、この記事はおそらく時代遅れであるとコメントしていました。私はあなたの意見はどうですか?

これが私のものです: この記事の主なポイントの 1 つは、 を消去または挿入できないことですがconst_iterator、それをconst_iterators. const_iterators範囲をまったく変更せず、値を代入して要素自体を変更したり、挿入または消去して範囲を変更したりすることはありません。または、何か不足していますか?

0 投票する
3 に答える
9452 参照

c++ - C ++:const_iteratorの書き方は?

イテレータを使用して独自のコンテナテンプレートを作成しました。const_iteratorを実装するにはどうすればよいですか?

0 投票する
4 に答える
3600 参照

c++ - 一定の正しさ

printMessage で、インデックスを使用して定数クラスのベクトルにアクセスすると正常に動作しますが、反復子 (*itr) では動作しません。イテレータが constant_iterator として宣言されている場合、正常に動作します。

なんで?

どちらの場合も、ベクトルを変更せずにデータを読み取っています。誰かが光を当てることができますか?

0 投票する
3 に答える
10790 参照

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に変換する場所と理由がわかりません。私は何が間違っているのですか?

0 投票する
9 に答える
236548 参照

c++ - カスタムイテレータとconst_iteratorsを正しく実装する方法は?

iteratorとクラスを記述したいカスタムコンテナクラスがありconst_iteratorます。

私はこれまでこれを行ったことがなく、適切なハウツーを見つけることができませんでした。イテレータの作成に関するガイドラインは何ですか?また、何に注意する必要がありますか?

また、コードの重複を避けたいと思います(私はそれを感じ、多くのことconst_iteratoriterator共有しています。一方が他方をサブクラス化する必要がありますか?)。

脚注:Boostにはこれを緩和する何かがあると確信していますが、多くの愚かな理由から、ここでは使用できません。

0 投票する
5 に答える
1819 参照

c++ - max_element & iterator = 3x 遅い c++ 関数

私が開発しているプログラムは、次の関数を呼び出すと 3 倍遅くなります。数百万回呼び出されなくても悪くないでしょう。

periodosこの関数を大幅に高速化する別の方法はありますか?

ルイス

0 投票する
3 に答える
131820 参照

c++ - const_iteratorとiteratorの違いは何ですか?

STL内での実装に関して、これら2つの違いは何ですか。パフォーマンスの違いは何ですか?「読み取り専用」でベクトルをトラバースするときは、私たちが好むconst_iteratorと思いますよね?

ありがとうございました。

0 投票する
6 に答える
194 参照

language-agnostic - 反復されたものはどのように呼び出されますか?

イテレータが const である (つまり、インクリメントまたはデクリメントできない) が、それが生成するものは非 const であることを表現したかったのです。

がポインターの場合iterator、次のように言えます。

ポインタ // イテレータ

pointee // それがもたらすもの

しかし、それがポインターでない場合、私にはわかりません。「pointee」の代わりに使用することを考えcontainerましたが、イテレータはコンテナーにまったく関連付けられていません。たとえば、入力反復子をファイルまたは STDIN に関連付けることができます。以下は機能し、他の人によって使用されていますか?

イテレータ // イテレータ

iteratoo // 生成されるもの

ご指導よろしくお願いします!