【发布时间】:2017-09-29 16:14:43
【问题描述】:
我想知道是否可以只用键填充 QMap,然后为每个键添加值。
例如,类似:
QMap<QString, QString> map;
map.insert("key", null (??));
感谢您的回答
【问题讨论】:
我想知道是否可以只用键填充 QMap,然后为每个键添加值。
例如,类似:
QMap<QString, QString> map;
map.insert("key", null (??));
感谢您的回答
【问题讨论】:
仅使用键填充映射是不可能的,但是您可以使用空字符串作为值对其进行初始化。
请注意,在 Qt 中,空字符串和空字符串是有区别的。
因此我会将地图的每个元素初始化为
map.insert("key", QString()); // map of null strings
相对
map.insert("key", ""); // map of empty strings
【讨论】:
nullptr 是否可以转换为QString,因为QString(nullptr) 应该使用QString(const char*) 构造函数。
"" 隐含地包含一个字符 - 空终止。您实际上是在传递一个空值,字符串长度也将被评估为空值。
好吧,你可以用空字符串值填充它,然后简单地更改字符串:
QMap<QString, QString> map;
map.insert("key", "");
// and later
map[key] = "something else";
【讨论】: