我需要创建一个可以包含任何基本数据类型(如double,float,string,char等)作为其值的映射,以存储来自服务器组件请求的值。
我正在考虑使用这样的地图:std::map<std::string, void*>
,但我不知道这是一个非常好的解决方案。
我想知道是否有人可以就更好的解决方案提出建议。重点是值必须在同一个地图中。
请指教?
答案 0 :(得分:14)
You could use boost::any
作为可以保存“任何”类型的值。
(It is better to use boost::variant
如果只有有限的“基本数据类型”)
答案 1 :(得分:4)
为地图成员试用boost::any
或boost::variant
。
答案 2 :(得分:1)
您可以将结构或联合(具有int字段,float字段等)作为映射的值类型。这将更清晰,更易于维护。
答案 3 :(得分:0)
听起来你基本上需要Qt的QVariant
类型提供的相同服务。我不建议在Qt中使用这一类,但您可能希望查看API并查看是否要创建类似的内容。