CMapが欲しいのですが:
CMap<long,long, Cmap<long,long,long,long>>
したがって、私のデータ構造はキーとしてlongを持ち、値にリダイレクトされ、値はその中のlongのcmapになります。
例:「1」を受け取った場合、CMapに送信されます。
2を受け取ると、別のcmapが送信されます。
これは可能ですか?
std/stlマップを使用できません。このプロジェクトではMFCCMapオブジェクトを使用する必要があります。
ありがとう。
この回答によると、aにCMap
はコピーコンストラクターがないため、一方を他方の中に含めることはできません。ただし、それでもポインタを格納できるはずです。CMap
CMapに保存する内容に制限はないと思いますので、これを行うことができますが
、標準ライブラリコンテナを使用することを強くお勧めします。それらは理由のために標準です。これにより、保守が容易になり、将来の開発者がコードを読みやすくなります。MSはまた、新しいコンパイラで帯域外のC ++コンパイラの更新を行う予定なので、将来再コンパイルするだけでボーナスが向上する可能性があります。
std::map<long, std::map<long, long> > myMapOfMaps;
編集:
CMapのヘッダーを確認しましたが、@ DaveRagerが正しいので、コピーコンストラクターがないため、CMap *に長いCMapを設定するか、std::mapを使用するしかありません。標準写像を強くお勧めします。
Edit2:
プロジェクトで標準ライブラリを使用することは許可されていないというあなたの声明に基づいて、あなたはへのマップを持つことに頼らなければなりませlong
んCMap*
。建築家に相談して、標準ライブラリコレクションを使用したくない理由を見つけてください。標準コレクションの設計を理解すると、コードがはるかにクリーンで読みやすくなります。
答えてくれてありがとう。
CMapへのポインタを格納するソリューションは機能しますが、リスクが高すぎます。
念頭に置いておくことができるもう1つの解決策は、CMapを含むオブジェクトのマップを作成することです。クラスには、その中に識別子とcmapが含まれます。意味:
CMap LiveDisconnectionCache;
再度、感謝します