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

c++ - マップからいくつかのパラメーターにアクセスする

マップを定義しましたが、

エントリはキーと値の文字列によって動的に入力され、要素とシーケンスの数は動的です..

ここでhostName、キーがわかっているマップから 7 つのパラメーターを取得する必要があります。portuser1user2user3

1 つの方法は、5 つのパラメーターすべてにアクセスし、..のような 5 つのステートメントを使用することです。

アクセス.. iterparam1->second.data()_iterparam2->second.data()

マップからサブセットを知っているので、この単純なアプローチはその仕事をしますが、提案された/代替アプローチの現在の利点と欠点を備えたこの方法に代わるものがあるかどうかを議論したいと思います..

御時間ありがとうございます :)

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

qt - QHash は「クラス QHash からパラメーター 1 を変換できません」::const_iterator' から '::iterator'

QDomElement としてキーと値のペアで定義された qhash があります。以下に示すように。const_iterator を使用してハッシュを更新しようとしています。しかし、そうしている間にエラーがスローされ、同じ問題を解決する方法:-

コードスニペット :-

ありがとう、プリヤンカ

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

c++ - C++11: あるメソッドでは機能するのに、同じクラスの別のメソッドでは機能しないのはなぜですか? const const_iterators にモーフィングするイテレータ?

データを範囲に格納するコンテナーを作成range_mapしているため、ポイントを選択して、それをカバーする範囲を取得できます。原則として、範囲を挿入する場合、その開始点と終了点はそれぞれ同じ範囲でカバーされる必要があります。これにより、範囲の一種のピラミッド構築が発生します。

他の範囲のサブセットである範囲は、それらの他の範囲を親として持ちます。この奇妙な問題を経験したとき、私はそれをほぼ完了し、デバッグしています。エラーが発生したコンテナーからのプライベート メソッド (ヘルパー メソッド) を次に示します。

OK、イテレータはラップされたコンテナのイテレータから型定義されています。

  • range_typeラップされたコンテナに格納されるタイプです。
  • parent親の範囲で、反復子としても格納されます。

問題は、 または のいずれかが割り当てられている行にあり_i->parentます。で返ってきます。さて、私にとって、これは日本語ですが、ポイントされた 2 つの行のそれぞれの左オペランドは;型であると書かれています。したがって、何も割り当てることはできません。 _end_starterror c2678const std::_Tree_const_iterator<_Mytree>

左オペランドが a であると見なされる理由const const_iteratorはわかりませんが、それはエラーです。(ちなみに、parent は range_type で iterator として宣言されています。) 本当に面白いのは、別のメソッド (今回は同じクラスのパブリック メソッド) で、まったく同じことを iterator からの parent で行うことです。正常にコンパイルされます。このパブリック メソッドは、コード内で上記のプライベート メソッドの前にあります。パブリックメソッドは次のとおりです。

_i->parentコード内のこのメソッドは、エラーを発生させたメソッドの前にありますが、値が割り当てられた行ではエラーは発生しませんでした。

ここで何が起こっているのですか?イテレータが const const_iterator に変形するように見えるのはなぜですか? 十分に詳しく説明できたことを願っています。

編集:翻訳された残りの出力は次のとおりです。

これはとても不可解です。私はそれについて表も裏も作ることができず、なぜ同じことが他の機能で起こらなかったのか理解できません。イテレータを含むペアを返すためですか、それとも何かですか? 奇妙な複雑なもの?

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

c++ - C++ std::vector::const_iterator の問題

だから私はC ++に比較的慣れていないので、次のstd::vector::const_iteratorに問題があります:

GetSubNodes アクセサー

基本的に、 itr が通常のイテレータであると予想される実行時エラーが発生します。私がどこで間違っているのか誰か知っていますか?おそらく非常に単純な問題ですが、私は今それを見ていません。

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

cuda - const ソースで copy_if を推力

私の問題は次のコードにあります。

フィルター関数はコンパイルされ、ソースが一定でない場合に正常に実行されます (イテレーターはそれに応じて調整されます)。ただし、ソースを const に変更すると、コンパイラは copy_if ステートメントの最初の 2 つの変数に対して次のエラーを表示します:「オブジェクトには、メンバー関数と互換性のない型修飾子があります」。

const から not const への変換エラーがどこかにあると思いますが、率直に言って、どこにあるのかわかりません。どんな助けでも大歓迎です。

私はTheOther.cbegin() / .cend()、コンパイラがそれを受け入れる次のように置き換えることを発見しました。これは、typedef セクションのどこかを台無しにしたことを意味しますが、どこでしょうか?

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

c++11 - 「auto it = unordered_map.find(key)」の推定型?

C++11 の出現により、unordered_map.cbegin/cend があり、具体的に const_iterator の値を返します。そのため、式「auto it = unordered_map.cbegin()」の「it」の推定型は const_iterator です。

ただし、 unordered_map.find(key) 関数に関しては、具体的に const_iterator を返す「cfnd()」の対応物が欠落している可能性があると思います。

「const auto it = unordered_map.find(key)」を使用して「const iterator」を取得できると言う人もいますが、「const iterator」は同じ「const_iterator」であると強く疑っています。 「const_iterator」は、イテレーターが参照しているコンテンツを変更する機能を制限しますが、イテレーター自体を変更する機能。

したがって、実際には、「auto」型推論を完全に利用したい場合 (「auto」型推論の混乱またはバリエーション (auto、auto&、const auto& など) を知っている場合)、unordered_map を使用するにはどうすればよいですか? .find(key) を使用して、「const_iterator」を明示的に指定しなくても「const_iterator」を返すことができます。これは、auto の最適な使用例です。

以下は、コンパイラの動作を示す簡単なコード例です。

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

c++ - 従属スコープの typename

以下は、コンパイル エラーが発生するコードの要約バージョンです。コンパイラは、typename を 'std::deque::reverse_iterator' の前に置くように指示しますが、これは理にかなっています。しかし、そうすると、下部にエラーが表示されます。どういう意味ですか?どうすれば解決できますか?

エラー:

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

c++ - C++ const_iterator は逆参照できませんか?

const_iterators を使用しようとすると、ランタイム エラーが発生します。エラー: リスト反復子は参照解除できません。リストに値を代入するために const_iterator を逆参照できないことは理解していますが、イテレータを逆参照してリスト内の値にアクセスしようとしています。Visual Studio 2010 Professional を使用しています。

私はこれをかなり調査しましたが、私が間違っていることを理解するのに役立つものは何も見つかりませんでした.