問題タブ [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.
runtime - 異常な std::map ランタイム エラー
私が取り組んでいるゲームのエディターを一緒にハッキングしていますが、そのエディターの一部として、明らかにテクスチャが必要です。std::map 変数を作成しましたので、
私の画像読み込みコードには、次のスニペットがあります。
上記のコードを使用しようとすると、何らかの理由で実行時エラーが発生します。デバッグ時に std::map コード自体、具体的には次の部分を指すアクセス違反エラー:
システムをテストするためだけに、画像読み込み関数を 1 回だけ呼び出しています。変数を確認したところ、ファイル名と id 変数の両方が正しいです。ランタイム クラッシュの原因について何か考えはありますか?
c++ - マップのコンテンツをコンソールに表示するにはどうすればよいですか?
私はmap
次のように宣言しました:
上記のマップに保存されているアイテムをコンソールに表示するにはどうすればよいですか?
c++ - C++で文字列でいっぱいのstd::mapを反復処理する方法
を使用して定義された文字列の連想配列の反復に関連する次の問題がありますstd::map
。
コンストラクターでは、文字列データに関連付けられた文字列キーのペアをテーブルに入力します。他の場所にtoString
、テーブルオブジェクトに含まれるすべてのキーと関連データを含む文字列オブジェクトを返すメソッドがあります(key = data形式として)。
コンパイルしようとすると、次のエラーが発生します。
誰かが私に何が欠けているのか、私が間違っているのかを説明してもらえますか?ユーザーがオブジェクトhash_map
で使用できるようにハッシュ関数を定義する必要がある場合に、同様の問題についての議論をいくつか見つけました。私の場合も似たようなものでしょうか?hash_map
std::string
c++ - C++ 値への参照を std::map に格納する
std::map への要素の追加/削除は他の要素に影響を与えず (つまり、それらがメモリ内で再配置される)、以下が安全であると仮定するのは正しいですか:
コンテナーに関する情報を含むさまざまなサイトを調べましたが、既に知っているイテレーターが無効化されているケースについてしか知りませんでした...
VC9 で同様のコードをテストしましたが、これは機能しているように見えますが、運が良かっただけでなく、コンパイラ間で変化しないという意味でもありません。
c++ - ユーザー定義型をキーとして std::maps を使用するにはどうすればよいですか?
ユーザー定義のクラスで STL マップを使用できない理由が不思議です。以下のコードをコンパイルすると、次の不可解なエラー メッセージが表示されます。どういう意味ですか?また、ユーザー定義型でのみ発生するのはなぜですか? (プリミティブ型は、キーとして使用する場合は問題ありません。)
C:\MinGW\bin..\lib\gcc\mingw32\3.4.5........\include\c++\3.4.5\bits\stl_function.h||メンバー関数内 `bool std:: less<_Tp>::operator()(const _Tp&, const _Tp&) const [ with _Tp = Class1]':|
C:\MinGW\bin..\lib\gcc\mingw32\3.4.5........\include\c++\3.4.5\bits\stl_map.h|338|`_Tp& std からインスタンス化:: map<_Key, _Tp, _Compare, _Alloc>::operator[](const _Key&) [ with _Key = Class1, _Tp = int, _Compare = std::less, _Alloc = std::allocator >]'|
C:\Users\Admin\Documents\dev\sandbox\sandbox\sandbox.cpp|24|ここからインスタンス化|
C:\MinGW\bin..\lib\gcc\mingw32\3.4.5........\include\c++\3.4.5\bits\stl_function.h|227|エラー: 'operator に一致しません<' in '__x < __y'| ||=== ビルドが終了しました: 1 エラー、0 警告 ===|
c++ - std::map で 2 つのキーを使用する最良の方法は何ですか?
std::map
x 座標と y 座標の値を格納するために使用している があります。私のデータは非常にまばらなので、メモリを大量に浪費する配列やベクトルを使用したくありません。私のデータ範囲は -250000 から 250000 ですが、多くても数千ポイントしかありません。
現在std::string
、2 つの座標 (つまり"12x45"
) を使用して を作成し、それをキーとして使用しています。これは最善の方法とは思えません。
私の他の考えは、int64 を使用し、それに 2 つの int32 を押し込んで、それをキーとして使用することでした。
または、2 つの座標を持つクラスを使用します。キーとして使用されるクラスの要件は何ですか?
これを行う最善の方法は何ですか?地図の地図は使いたくない。
c++ - 静的 std::map を初期化するにはどうすればよいですか?
メッセージのみのウィンドウ クラスを作成し、これらのハンドルを持つオブジェクトに HWND をマップしようとしています。std::map<HWND, CMyClass*>
次のように、クラスに属するプライベート静的を使用してそれを実行しようとしています:
MyClass.h:
MyClass.cpp:
しかし、マップに追加しようとすると、プログラムがクラッシュします。3 つの異なるフォームを試しましたが、すべて同じエラーが発生します。
また
あるいは
いずれの場合も、_Root()
を戻そうとする呼び出しでクラッシュが発生し_Parent(_Myhead)
ます。がnullであるために失敗したものを_Parent(_Myhead)
返します。(_Nodepref)(*_Myhead)._Parent
_Myhead
マップのヘッドが null ではなく、クラッシュすることなく挿入できるように、マップを初期化するにはどうすればよいですか? これをひどく説明した場合はお詫び申し上げます-私はC ++を初めて使用します。
c++ - std::map に違いはありますかおよび std::map?
私が理解していることから、 std::map の値ペアのキーは、一度挿入すると変更できません。これは、キー テンプレート引数を const としてマップを作成しても効果がないということですか?
c++ - 2DマップをパラメーターとしてC++の関数に渡す方法は?
私は次のような地図を持っています
このマップをパラメーターとしてPerform()などの関数に渡すにはどうすればよいですか?
前もって感謝します。