Gitlab TensorRT 人脸识别 金融信贷 post npm sass Material UI jquery查找子元素 axure组件库下载 matlab中如何定义函数 ln函数图像 flutter项目案例 mysql连接 python参考手册 python的open函数 java判断语句 java创建文件 java游戏开发 swing布局 rendercontrol js轮播图代码 自动喊话器 电脑手机模拟器 电脑书籍下载 c4d挤压怎么用 解压tar 电脑代码雨 现代操作系统 超级网游助手 flash教程 沉沦之城 华为mate8和p9哪个好 接口自动化测试框架 日文游戏乱码转换工具 js组合 安卓人脸识别 cdr标注尺寸 下载网络电视 lol语音
当前位置: 首页 > 学习教程  > 编程语言

QMap类,QHash类,QVariant类

2021/1/28 23:24:31 文章标签:

QMap 与 QHash 差别&#xff1a; ①QHash 比 QMap 查找速度更快。 ②QHash 以任意顺序存储&#xff0c;QMap 以 Key 顺序存储数据。 ③QHash 的 Key 必须提供 operator()及一个全局的 qHash(Key)函数&#xff0c;而 QMap 的 Key 必须提供 operator<()函数。 存储一键多值数…

QMap 与 QHash 差别:

①QHash 比 QMap 查找速度更快。
②QHash 以任意顺序存储,QMap 以 Key 顺序存储数据。
③QHash 的 Key 必须提供 operator==()及一个全局的 qHash(Key)函数,而 QMap 的 Key 必须提供 operator<()函数。
存储一键多值数据时可使用 QMultiMap<Key,T>容器或 QMultiHash<Key,T>容器。

QVariant 类是 Qt 的共 用体 union 数据 类型, 不仅 能保存 很多 Qt 类型 的值, 包括QColor,QBrush,QFont,QRect,QString 及 QSize 等等,而且能存放 Qt 的容器类型值

QHash类
    QHash<int,QString> numHash;
    numHash.insert(1,"一");
    numHash.insert(2,"二");
    numHash.insert(3,"三");
    numHash[50] = "五十";
    numHash[100] = "一百";
    numHash.insertMulti(100,"壹佰");

    //只读迭代器
    QHashIterator<int,QString> it_mr(numHash);

    qDebug() << endl << "只读正遍历数字:";
    for(it_mr.toFront(); it_mr.hasNext();)
        qDebug() << it_mr.key()
                 << ":"
                 << it_mr.next().value();

    //读写迭代器
    QMutableHashIterator<int,QString> it_mrw(numHash);
    //修改数据
    if( it_mrw.findNext("五十") )
        it_mrw.setValue("50");

    qDebug() << endl << "更新数字后遍历:";
    for(it_mrw.toFront(); it_mrw.hasNext();)
        qDebug() << it_mrw.key()
                 << ":"
                 << it_mrw.next().value();
QMap类:

添加数据:

	QMap<QString,QString> infoMap;

    infoMap.insert("张三","163cm");
    infoMap.insert("李四","168cm");
    infoMap["王五"] = "173cm";
    infoMap["赵六"] = "186cm";

通过key找value:

    qDebug() << "李四:" << infoMap["李四"];
    qDebug() << "赵六:" << infoMap.value("赵六");

通过value找key:

    qDebug() << "168cm的"
             << infoMap.key("168cm")
             << endl;

遍历:

    //STL风格只读迭代器
    QMap<QString,QString>::const_iterator i_r;
    i_r = infoMap.constBegin();

    for( ; i_r != infoMap.constEnd(); ++i_r)
        qDebug() << i_r.key() << ":" << i_r.value();

    //STL风格读写迭代器
    QMap<QString,QString>::iterator i_rw;
    i_rw = infoMap.find("168");
    if(i_rw != infoMap.end())
        i_rw.value() = "178";

    qDebug() << endl << "修改后数据后遍历:";
    i_rw = infoMap.begin();
    for( ; i_rw != infoMap.end(); ++i_rw)
        qDebug() << i_rw.key() << ":" << i_rw.value();
QVariant 类:

QVariant 转int:

   	QVariant vNum(100);
    qDebug() << vNum.toInt();

QVariant转float:

	QVariant vPI(3.1415f);
    qDebug() << vPI.toFloat();

QVariant转QString:

    QVariant vStr("Hello!");
    qDebug() << vStr.toString();

QVariant转bool:

    QVariant vb(true);
    qDebug() << vb.toBool();

QVariant转QColor:

    QColor c = QColor(Qt::red);
    QVariant vC = c;
    qDebug() << vC.type();
    qDebug() << vC.value<QColor>();

返回数据类型转换的能力:

    QVariant vss = vStr;
	//转换成功的条件:有转换能力,数据类型匹配
    qDebug() << vss.canConvert(QVariant::Int);	

本文链接: http://www.dtmao.cc/news_show_650198.shtml

附件下载

上一篇:Mysql的主从配置

下一篇:numpy常用小知识

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?