1

CMapが欲しいのですが:

CMap<long,long, Cmap<long,long,long,long>>

したがって、私のデータ構造はキーとしてlongを持ち、値にリダイレクトされ、値はその中のlongのcmapになります。

例:「1」を受け取った場合、CMapに送信されます。
2を受け取ると、別のcmapが送信されます。

これは可能ですか?

std/stlマップを使用できません。このプロジェクトではMFCCMapオブジェクトを使用する必要があります。

ありがとう。

4

3 に答える 3

5

この回答によると、aにCMapはコピーコンストラクターがないため、一方を他方の中に含めることはできません。ただし、それでもポインタを格納できるはずです。CMap

于 2012-10-10T17:05:48.913 に答える
2

CMapに保存する内容に制限はないと思いますので、これを行うことができますが
、標準ライブラリコンテナを使用することを強くお勧めします。それらは理由のために標準です。これにより、保守が容易になり、将来の開発者がコードを読みやすくなります。MSはまた、新しいコンパイラで帯域外のC ++コンパイラの更新を行う予定なので、将来再コンパイルするだけでボーナスが向上する可能性があります。

std::map<long, std::map<long, long> > myMapOfMaps;

編集:
CMapのヘッダーを確認しましたが、@ DaveRagerが正しいので、コピーコンストラクターがないため、CMap *に長いCMapを設定するか、std::mapを使用するしかありません。標準写像を強くお勧めします。

Edit2:
プロジェクトで標準ライブラリを使用することは許可されていないというあなたの声明に基づいて、あなたはへのマップを持つことに頼らなければなりませlongCMap*。建築家に相談して、標準ライブラリコレクションを使用したくない理由を見つけてください。標準コレクションの設計を理解すると、コードがはるかにクリーンで読みやすくなります。

于 2012-10-10T16:14:45.043 に答える
0

答えてくれてありがとう。

CMapへのポインタを格納するソリューションは機能しますが、リスクが高すぎます。

念頭に置いておくことができるもう1つの解決策は、CMapを含むオブジェクトのマップを作成することです。クラスには、その中に識別子とcmapが含まれます。意味:

CMap LiveDisconnectionCache;

再度、感謝します

于 2012-10-11T07:45:33.240 に答える