1

私は次のような構造体を持っています:

struct T_MY_TOY {
   uint32_t id;
   float data;
};

カスタム マップを定義したいと思います。私の最初の実装は次のとおりです。

typedef std::map<uint32_t, T_MY_TOY*> T_MY_TOY_MAP;

T_MY_TOY*の代わりに、スマート ポインターまたは参照ラッパーを使用するのは正しいですか?

typedef std::map<uint32_t, std::shared_ptr<T_MY_TOY> > T_MY_TOY_MAP;

また:

typedef std::map<uint32_t, std::reference_wrapper<T_MY_TOY> > T_MY_TOY_MAP;

最適なソリューションはどれですか?

4

2 に答える 2

2

どちらのソリューションも最適ではありません。最適なソリューションは値によるストアです。

 typedef std::map<uint32_t, T_MY_TOY> T_MY_TOY_MAP;
于 2013-08-16T11:31:00.713 に答える