qt - 嵌套 QMap - 如何在不实例化的情况下插入
问题描述
QMap<QString,int> map;
QMap<int,QMap<QString,int>> table;
QMap<QString,int>::iterator iter = map.begin();
int i = 0;
while (iter != map.end())
{
if (condition) {
table.insert(i++,iter.key(),iter.value()); // <--- this is obviously wrong
else
++iter;
}
所以基本上我需要在地图中过滤我们的数据并将它们作为新的 QMap 作为表 QMap 中的值插入。如何解决这个问题?
解决方案
从 Qt 5.1 开始,当编译为 c++11 时,您可以使用初始化列表:
table.insert( i++, QMap<QString,int> {{iter.key(),iter.value()}} );
但是问题标题说“没有实例化”,这是不可能的。这只是另一个构造函数。
推荐阅读
- python - 使用 http get 请求下载 csv?
- notepad++ - 在记事本++中的其他多行之后插入多行
- python - 为 Dask.DataFrame 中的列赋值
- jquery-ui-sortable - SortableJS 没有落在动态创建的空列表上
- javascript - Discord 审核日志
- javascript - 如何在输入框中添加单个字母过滤器
- python - 将 csv 下载到本地时出现 Unicode 解码问题
- awk - 通过 grep/awk/cut 删除字符串中的多余点
- swift - 从左下角动画`CATextLayer`字体大小
- wordpress - WordPress | 未登录时不可见更改