如何通过在运行时中指定键和值数据类型来创建如下的 c++ stl std::map(s)。
std::map<keyT, valueT>
keyT 和 valueT 数据类型将在运行时确定,我想根据不同的数据类型创建几个地图实例。我怎样才能做到这一点?
如何通过在运行时中指定键和值数据类型来创建如下的 c++ stl std::map(s)。
std::map<keyT, valueT>
keyT 和 valueT 数据类型将在运行时确定,我想根据不同的数据类型创建几个地图实例。我怎样才能做到这一点?
C++ 模板只是类和/或函数的蓝图。
在你的程序中有模板定义,并不意味着编译器会为它们生成代码。
编译器只会在模板被实例化的情况下生成代码,即当您通过用真实数据/类类型替换参数来使用模板时。
因为没有这些信息,编译器就无法生成代码。要真正建造房屋,您将需要砖头和砂浆,而不仅仅是蓝图。
您可能会发现boost::any
对这项任务很有用,例如
typedef std::map<int, boost::any> MyIntMap;
你实际上可以声明一个带有模板参数的映射,该模板参数基于具有 decltype 的其他变量类型(在 c++11 中)请参阅此页面http://www.cprogramming.com/c++11/c++11-auto-decltype- return-value-after-function.html但是,如果您指的是 c++98,它们是正确的,在这种情况下,这是不可能的