嵌套QMAP QT
问题描述:
我想在我的QT应用嵌套QMAP QT
QMap<QString,QMap>
使用此代码但它说
C:/****/****/****/***/domparser.h:14: error: type/value mismatch at argument 2 in template parameter list for 'template<class Key, class T> class QMap'
答
QMAP是一个模板类构建的问题,所以你需要指定内QMAP的类型是这样的:
QMap<String, QMap<QString, int> > myMap;
注之间的'>的否则C++词法分析器认为其>>操作符的空间。
[编辑]
如果你打算尝试一种通用QMAP存储的值类型,而不是QMAP的具体实例,你的外在地图中,你不能!
你不能像QMAP,因为QMAP本身就不是一个类型,它是一个模板 - 它只是名称时,模板参数指定
“如果你打算尝试存储任何类型的QMAP作为类型价值型......你不能” - 这可以被理解为‘无QMAP的实例可以作为外QMAP’的值类型。我确信这不是你的意思,但是为了避免疑惑:虽然“QMap”无效,但可以使用QMap的*给定实例化*作为值类型。 “QMap >”。 –
2010-03-22 08:00:04
...和,如果外QMAP是一个模板内定义的,该模板的参数可被用于实例化所述内(值)QMAP。例如,如果外部QMap是'Foo'的成员,那么它的完整类型可能是'QMap >' –
2010-03-22 08:03:34
是的,我的坏... 我应该说它需要一个完整的可实例化(可解析?)类型作为模板类型参数 – 2010-03-22 18:20:06