可以采用任何基本类型的地图

时间:2010-10-27 20:22:16

标签: c++ map

我需要创建一个可以包含任何基本数据类型(如double,float,string,char等)作为其值的映射,以存储来自服务器组件请求的值。

我正在考虑使用这样的地图:std::map<std::string, void*>,但我不知道这是一个非常好的解决方案。

我想知道是否有人可以就更好的解决方案提出建议。重点是值必须在同一个地图中。

请指教?

4 个答案:

答案 0 :(得分:14)

You could use boost::any作为可以保存“任何”类型的值。

It is better to use boost::variant如果只有有限的“基本数据类型”)

答案 1 :(得分:4)

为地图成员试用boost::anyboost::variant

答案 2 :(得分:1)

您可以将结构或联合(具有int字段,float字段等)作为映射的值类型。这将更清晰,更易于维护。

答案 3 :(得分:0)

听起来你基本上需要Qt的QVariant类型提供的相同服务。我不建议在Qt中使用这一类,但您可能希望查看API并查看是否要创建类似的内容。

文档:http://doc.trolltech.com/4.2/qvariant.html