問題タブ [stdmap]

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 投票する
3 に答える
27323 参照

c++ - テンプレートクラス値のC++std :: map

テンプレート化されたを指す値を持つプライベートを持つことで、RowColumnクラスを宣言しようとしています。このようなもの:Rowstd::mapColumn

まあ、原則として、クラスは使用したい種類(または)をRow知る必要はないと思います。つまり、1列目か2列目かはわかりません。しかし、正しい構文が何であるかはわかりません。宣言のために、またはこの意味で制限されていて、私が何か他のものを使用する必要がある場合。FieldColumnField<int>Field<double>Row::columnstd::map

よろしくお願いします。よろしくお願いします。

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

c++ - std :: map :: clear()が呼び出された後もメモリにアクセスできるのはなぜですか?

std :: map :: clear()の奇妙な振る舞いを観察しています。このメソッドは、呼び出されたときに要素のデストラクタを呼び出すことになっていますが、clear()を呼び出した後もメモリにアクセスできます。

例えば:

a問題は、そのデストラクタがmap :: clear()によって呼び出された後でも、なぜ変数にアクセスできるのかということです。delete a;呼び出し後に書き込む必要がありますか、それともmy_map.clear()内容を上書きしても安全aですか?

よろしくお願いします、sneg

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

c++ - std::map::const_iterator を使用してテンプレート化されたクラスにネストされた構造体?

次のコードは、反復子が宣言されている行で構文エラーを生成します。

これは、A がテンプレート化されたクラスである場合にのみ発生します。このコードの何が問題になっていますか? A から B を移動すると、コードは正常にコンパイルされます。

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

c++ - C++ const std::map 参照がコンパイルに失敗する

std::mapas constへの参照を渡すと [] 演算子が壊れる理由はありますか? const を使用すると、次のコンパイラ エラー (gcc 4.2) が発生します。

エラー: 'map[name]' の 'operator[]' に一致しません</p>

関数のプロトタイプは次のとおりです。

constまた、の前のキーワードを削除しても問題ありませんstd::map

私が正しく指示されていれば、キーが見つからない場合、[] 演算子は実際に新しいペアをマップに挿入します。これはもちろん、これが起こる理由を説明しますが、これが実際に起こるとは想像できません。許容される動作。

[] の代わりにfindを使用するなど、より良い方法があれば、それをいただければ幸いです。ただし、find が機能しないようです... const不一致の反復子エラーが発生します。

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

c++ - std::map イテレータが MFC アプリで繰り返されない

レガシーMFCアプリケーションでこのように宣言された std::map があります。

m_NutrientInfoMap は、テーブルをループして CNutrientInfo のインスタンスを作成し、次のように std:map に挿入することによって、アプリが読み込まれるときに設定されます。

std::map には、データベースによって定義された栄養素のリストが含まれるようになりました。ある時点で、ユーザーがこのリストに新しい栄養素を追加すると、ユーザーが追加しようとしているものが既にリストに存在するかどうかがチェックされます。それは次のようにチェックします:

または、少なくともそうするはずです。関数が実際に呼び出されると、while ループの最初の行を超えて進むことはありません。そこにブレークポイントを配置すると、問題の行が何度も呼び出され、それを超えて進まないことが示され、アプリがハングします。実際の比較にステップインすると、正しく比較され、while ループ行に戻ります。再びステップインしてループの本体に進むと、単純に while ループの行に戻ります。これと同じロジックがアプリの他の場所でも問題なく使用されているため、この場合何が起こっているのかわかりません。for ループを使用して上記のロジックを書き直したところ、問題なく動作するので、回避できないわけではありませんが、C++ は私の最強の言語ではありません。これはレガシー アプリであるため、サポートを手伝おうとしています、私は' 今後の参考のために、なぜこれが何をしているのかを学び、理解したいと思っています。さらに、ロジックはここではなく他の場所で機能するため、実際に対処する必要がある根本的な原因がある可能性があります。

これに関する提案や考えは大歓迎です。

前もって感謝します。

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

c++ - C++ std::map への挿入時の奇妙なバグ

いくつかの値のペアを std::map に挿入しようとしています。最初のケースでは、マップへのポインターを受け取り、それを逆参照し、添え字演算子を使用して値を割り当てます。すなわち

後でコレクションを反復処理しようとすると、最初の (map.begin()) アイテムを除くすべてのケースで、値属性に null を含むキーと値のペアが返されます。奇妙なことは、マップの挿入機能を介して挿入を行うと、すべてがうまくいくことです。

これはなぜでしょうか?2 つの方法は機能的に同等ではありませんか? コンテキストのために、実際のコードのスニペットを以下に貼り付けました

私はすべてのアイデアがありません。誰か提案がありますか?

0 投票する
8 に答える
24959 参照

c++ - C++ スレッドセーフ マップ

std::mapa をラップしてスレッドセーフにする実装をどこで見つけることができるか知っている人はいますか? スレッド セーフとは、一度に 1 つのスレッドで、マップへのシリアル アクセスのみを提供することを意味します。最適には、このマップは標準ライブラリおよび/またはブースト構造のみを使用する必要があります。

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

c++ - イテレータとreverse_iterator

私はstd::map多くの要素(要素のペア)を格納するために使用していますが、「少し」疑問があります。私のstd::mapiteratorまたはですべての要素を反復するのに、より効率的なものは何reverse_iteratorですか?

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

c++ - C ++でマップのキーとしてカスタムタイプを使用するにはどうすればよいですか?

のキーとしてカスタムタイプを割り当てようとしていますstd::map。これが私がキーとして使用しているタイプです:

と一緒に使用するとstd::map、次のエラーが発生します。

を以下のものに変更するstructと、すべてが機能します。

オペレーターがfriendとしてオーバーロードされていることを除いて、何も変更されていません。最初のコードが機能しないのはなぜですか?