問題タブ [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 投票する
0 に答える
125 参照

c++ - unordered_set のイテレータが読み取り専用なのはなぜですか?

上記の例で、どうすれば車の燃料を変えることができますか? を使用vectorしても、この問題は発生しません。

0 投票する
1 に答える
331 参照

c++ - std::set イテレータの戻り値の型の競合

これは、今日私を混乱させた 2 番目のコンパイラ エラーです。どういうわけか、以下のコードの場合、gcc は、コードにreturn_iter競合する型を返すイテレータを返す関数がありstd::_Rb_tree_iterator<const int*>、次にを返す関数があると文句を言いstd::_Rb_tree_const_iterator<const int*>ますが、セットが const ではないため、両方とも const イテレータであってはなりません。std::end()const 以外の左辺値で呼び出されたときにメソッドが を返す理由を誰か説明できますconst_iteratorか?

完全なコードを以下に貼り付けます。

でコンパイルした場合にのみ、このエラーが発生することに注意gccしてください。これを clang ( でコンパイルすると、このエラーは表示されませんApple LLVM version 8.0.0 (clang-800.0.38)。私が使用している gcc のバージョンはg++ (GCC) 5.1.0

関連する質問です。これは forward の正しい使い方ですか? std::forward転送参照を使用したいときはいつでも電話しても大丈夫ですか? 以下で呼び出す理由は、オブジェクトが右辺値の場合に型がいくつかのメソッドをオーバーロードする場合に備えて..


このLessPtrエラーを引き起こすには、どういうわけか必要です..

0 投票する
0 に答える
478 参照

c++ - iterator と const_iterators の実装

ネストされた iterator クラスと const_iterator クラスが内部にある二重リンク リスト クラスに関するコンパイルで問題が発生しています。

私はテンプレート構文を使用するのが初めてで、少し悪夢のようになっています。現在、各関数でエラーが発生し、最後にリンカー エラーが発生しているようです。これにより、ヘッダーに問題があるか、ヘッダーが含まれているか、関数のシグネチャに関係があるように感じます。

私のヘッダーのサンプルは次のとおりです。

対応する実装は次のとおりです。

ただし、コンパイルしようとすると、次のような 42 個のエラーが表示されます。

「RecentList::const_iterator::operator++(int) const」、次から参照:

最後にリンカーエラーがあります。

また、テンプレートが存在する理由は、リスト クラスがテンプレートを使用するためです。その構文を含めないと、Xcode はそれを好まない。

問題を修正するにはどこを見ればよいですか?

0 投票する
2 に答える
493 参照

c++ - アドレス イテレータ アイテム

Vertice(頂点クラス)が設定されているので、 が参照するアイテムのアドレスにs入りたい。言い換えると、Vertice *addressset<Vertice>::iterator it

でも、返品

何か案が?

0 投票する
1 に答える
69 参照

c++ - 並列実行時に反復子ペアを取る関数が機能しない

GameName (std::string) と、GameTime (size_t) のコレクションに対するイテレータの begin/end ペアを取る、次のテンプレート化された関数があります。範囲を反復処理し、GameTime-s を合計して、ゲーム名、合計ゲーム時間、平均ゲーム時間 (GameStats) のタプルを返します。

(デバッグの目的で、最初と最後に反復した要素もリストします。それらは毎回同じである必要がありますが、以下を参照してください。)

std::vector への参照を取得するこの関数の同様のバージョンは正常に機能しましたが、この新しい関数は、複数のインスタンスが並行して実行されると、反復子を台無しにしているようです。各ゲームのプロセスを開始するコードは次のとおりです。

(GameEntries は、GameName を GameTime のベクトルにマッピングする std::map タイプです)

プログラムの実行からの出力の関連部分は次のとおりです。

プログラムを複数回実行すると、一部のゲームの正しい結果から、どこでも完全に誤った数値まで、さまざまな結果が得られます。また、プログラムが完了した後、各ゲームのすべての GameTime エントリをリストして、プログラムが変更されていないことを確認します。

ただし、出力からわかるように、同じ関数内で (おそらく定数で変更されていない) 最初から最後まで反復すると、毎回異なる結果が得られます。これは、タスクが並行して実行される場合にのみ当てはまります。(次のフューチャーを起動する前に各フューチャーで wait() を呼び出すことにより) 順次実行すると、プログラムは正しく実行されるため、各スレッドが何らかの理由で他のイテレーターを無効にしていることが推測されます。 、すべて値渡しされました。

この干渉の原因と、それらを並行して動作させる方法を知りたいです。

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

c++ - 構造体のベクトル内の要素の変更

構造体のベクトル内の一連の要素を反復処理しており、構造体の 1 つの要素を変更したいと考えています。値を変更するために要素に書き込むと、更新が保持されません。ここに私が持っているものがあります:

まず、ヘッダーファイルで:

その後、.cpp モジュールで...

ベクター内の指定された構造の event.member の値が false のままではありません。このループに戻ると、条件ステートメントが再度実行されます。

イテレータの typedef と何か関係があるのでしょうか?

0 投票する
2 に答える
1139 参照

c++ - std::map::erase で const_iterator を使用できる理由

私は 1 つは使用できない印象を受けeraseましたconst iteratorこのコードを確認してください。
以下のコードがコンパイルされるのはなぜですか (C++11、gcc)?

マップ自体は一定ではありませんが、私の理解では、これconst iteratorは失敗するはずです。