QList(增删改查)示例

2023-10-30

特点:支持随机访问,其界面也是基于索引的,在中间的任意一端插入或移除项都是非常快速的

注:访问QList中的值时,尽量采用value(int i),因为value查不到此值时会返回一个默认值0,而at(int i)则会引起崩溃,并且at返回的值不可修改,不便于后期对数据的处理

	//定义QList变量
    QList<QString> list;

    /***********在列表中添加元素***********/
    // 方式1 <<
    list << "1" << "2" << "3";
    list << "4";//会添加到末尾

    // 方式2 添加到末尾 不会覆盖原来的
    list.append("5");
    list.push_back("6");

    // 方式3 添加到头部 不会覆盖原来的
    list.prepend("0");
    list.push_front("00");

    // 方式4 在位置4插入元素
    list.insert(4, "4");

    /***********改变位置***********/
    list.swap(1,3);//交换位置1和位置3的元素
    list.move(1,4);//把第一个元素移到第四个元素,其他元素顺移

    /***********查找元素***********/
    QString str;
    int index = list.indexOf("mm");//return该元素的下标值;若有第二个参数则表示查找第几个这个字符
    str = list.back();//返回最后一个元素 同list.last();
    str = list.front();//返回第一一个元素 同list.first();
    bool isCon = list.contains("23");//列表是否有某元素 成功返回true 否则false
    qDebug() << "str=" << str ;

    index = list.count();//列表总元素 同list.length();
    index = list.count("4");//列表中有几个这样的元素

    /***********从列表中删除元素***********/
    //位置下标
    str = list.takeAt(2); //删除第3个 并返回结果
    list.removeAt(3);
    //值
    list.removeOne(1);//删除列表里遇到的第一个该值
    //示例:
     QList<QString> list;
 	 list << "sun" << "cloud" << "sun" << "rain";
	 list.removeOne("sun");
 	 // list: ["cloud", ,"sun", "rain"]

    /***********修改元素的值***********/
    list.replace(2,"bc");//参数1 元素下标,参数2 修改的结果值
    list[2] = "opopo";

	/***********判断是否包含某个值***********/
	if(list.contains("value"))
	{
		return true;
	}

    /***********遍历访问元素***********/
    //方式1:
    for(int i = 0; i < list.size(); ++i)
    {
        //at()操作比操作符[]更快,因为它不需要深度复制
        qDebug() << list[i] << list.at(i) << list.value(i) ;
    }
    //方式2:
    QList<QString>::iterator it;
    for(it=list.begin(); it!=list.end();++it)
    {
        if((*it)== "00")
        {
            it = list.erase(it,it+2);//删除从起始位置到结束位置的元素
        }
        qDebug() << "it" << (*it);
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QList(增删改查)示例 的相关文章

  • 当 QML 对象不可见时防止 QML 属性绑定?

    我正在开发一个具有大量属性绑定的 QML 应用程序 数百个对象被跟踪并以不同的形式显示 例如 Qt3D QCanvas 当我在应用程序的单独页面上时 x y 位置和相对大小的属性绑定仍在发生 我怎样才能阻止他们 我知道我可以根据属性是否可视
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • 程序意外完成 - QT Creator

    我正在尝试使用 QT Creator 使用 QT 框架开发 GUI 控制台应用程序 我使用的是Windows XP 我安装了QT 4 8 3和mingw 两者均已安装 没有任何错误 然后我安装了QT Creator QT 版本 路径中的 Q
  • 如何在按下托盘图标菜单操作时执行功能?

    int main int argc char argv QApplication oApp argc argv QAction action1 QMenu menu QSystemTrayIcon TrayIcon QIcon favico
  • Qt 创建者 + MITK (Linux)

    我正在尝试使用MITK 与 Qt Creator 我已经通过 ccmake 成功编译并使用了 VTK 和 ITK 我已经编译了 MITK超级建造模式 它下载 CTK VTK ITK 等 然后我就配置好了 我已经用 make 编译了 大约两个
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • 如何使QTableView类的restoreState()和saveState()正常工作?

    首先 我想说 我的问题已经在这里讨论过 并且这里是 https stackoverflow com questions 1163030 qt qtableview and horizontalheader restorestate 但答案并
  • PyQt5:如何使QThread返回数据到主线程

    I am a PyQt 5 4 1 1初学者 我的Python是3 4 3 这是我尝试遵循的many https mayaposch wordpress com 2011 11 01 how to really truly use qthr
  • Qt 是否已经有了自己的 new 和 delete 运算符?

    我正在使用一个QGraphicsScene小部件并在其上显示一些点QGraphicsRectItem 这意味着要拨打很多电话new addItem 当出现时 并且removeItem delete摆脱未使用的点 当然 对于性能问题 我已经实
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 如何向同一个 QMenu 添加多个 QAction?

    我正在尝试实现 Qt 菜单自定义 并且我提供了一个功能来添加相同的功能QAction在同一个人民币上下文菜单中多次 但是当我尝试这样做时 myMenu gt addAction myAction myMenu gt addAction my
  • 如何为 Windows 构建静态 Qt 库并将其与 Qt Creator 一起使用

    我已经下载了以下 Qt 源 http download qt nokia com qt source qt everywhere opensource src 4 7 3 zip http download qt nokia com qt
  • 静态变量中的 qt tr()

    我在 qt 中的翻译方面遇到问题 我的项目中的所有翻译都工作正常 但有一个翻译位于类的静态变量中 相应部分代码如下 头文件类似于这样 typedef struct int type QString problematicString inf
  • 是否可以在 Qt Creator 中将 Qt 样式表与升级的小部件一起使用?

    我正在尝试使用 Qt 样式表对标准小部件进行一些重大的重新设计 因此 在为不同的小部件手动完成大部分工作之后 objectName选择器 我决定以某种方式对类似的小部件进行分组 例如我有多个QFrames其作用类似于内部表单中的标题 我希望

随机推荐

  • linux动态库查找路径以及依赖关系梳理

    编译时与运行时库的路径 linux下 编译时与运行时库的搜索路径是不同的 运行时动态库的路径搜索顺序 LD PRELOAD环境变量 一般用于hack 编译目标代码时指定的动态库搜索路径 指的是用 wl rpath 或 R选项而不是 L re
  • 可观测统计数据上因果推断----因果图模型

    基于前文的分析 在统计可观测数据上做因果推断是可以的 但是要满足一个基本的前提条件就是可忽略性 表述为干预变量Z与干预结果 Y 0 Y 1 在给定混淆变量X的前提下条件独立 在满足了这个条件后 如何形式化的表示这种因果推断呢 目前有两种经典
  • redis锁

    if redisHelper tryLock key 3 try log info 申请成功 finally redisHelper release key log info 释放锁 else log info 没获取到锁
  • 禁用无线键盘指定按键

    文章目录 前言 主体 前言 睡一觉把键盘压坏了一个按键 一开机键盘就自动打出这个字母 我在想用其他按键平替这个字母即可 使用软件修改内部的映射 那么使用autoHotkey软件是十分容易做到的 主体 letter replace ahk 创
  • 堆栈的生长方向和空栈满栈的区别

    在STM32中 堆栈是向下生长的满栈 Cortex M4 M3 处理器拥有 R0 R15 的寄存器组 其中 R13 作为堆栈指针 SP SP 有两个 但在同一时刻只能有一个可以看到 这也就是所谓的 banked 寄存器 PUSH R0 R1
  • 嘟囔

    双十一复盘感受 GMV冲上去了 可是后期退货和客诉谁来善后 一味的追求美丽的经济泡沫真的是企业生存之道吗 未来十年何去何从 2020 11 14 南京 苏宁易购总裁办公室供应链管理部
  • 还是决定去华为了!

    Datawhale分享 作者 李博杰 中国科学院大学博士 大家好 现在越来越多人选择读博士 有人说博士不愁就业 也有人说读博浪费时间的 工作卷 还有年龄焦虑 大多数博士毕业后也都不再年轻 博士毕业后 就业到底如何 今天在某乎看到一篇非常不错
  • linux桌面小程序开发日记_1(pyqt5 + yolov5)

    linux桌面小程序开发日记1 从零开始配置VM虚拟机 安装必要的软件vscode anaconda和pyqt5环境 最后一篇博客地址 https blog csdn net Liuchengzhizhi article details 1
  • Au cs6怎样才能导入和导出m4a或者就是aac格式的文件呢?

    求解 Au cs6怎样才能导入和导出m4a或者就是aac格式的文件呢 汉化版 解决发法 首选项 常规 媒体与暂存盘 动态链接媒体下面的启动DLMS格式支持打钩 在媒体浏览器内启用DLMS预览打钩 英文版edit preference med
  • C++ 逻辑与或非 逻辑与逻辑或 逻辑非

    文章目录 逻辑非 逻辑与 逻辑或 逻辑运算符 与 或 非 作用 根据表达式的值返回真值或者假值 逻辑非 include
  • 链接库介绍

    什么是库 计算机中 有些文件专门用于存储可以重复使用的代码块 例如功能实用的函数或者类 我们通常将它们称为库文件 简称 库 Library 以 C 语言为例 如下展示一个函数库 myMath c int add int a int b re
  • jdbc连接SQLite操作

    项目导入sqlite jdbc 3 7 2 jar 地址 http pan baidu com s 1kVHAGdD 示例 package test import java sql Connection import java sql Dr
  • 腾讯视频TS文件转MP4

    代码 我的 GitHub 仓库 https github com ylsislove ts2mp4 提取下载目录 腾讯视频缓存目录 Android data com tencent qqlive files videos XXXXX 目录下
  • 常用LVDS接口LCD屏

    1 常用LVDS接口LCD屏 具体请参考网站 LCD显示 配套软硬件模块 英创 各种屏实物介绍和手册 英创公司ESMARC系列中的ESM6802 ESM7000等主板型号可以直接引出LVDS信号和显示屏连接 我们提供了一些现成的屏幕模块 客
  • Pytorch中如何加载数据、Tensorboard、Transforms的使用

    一 Pytorch中如何加载数据 在Pytorch中涉及到如何读取数据 主要是两个类一个类是Dataset Dataloader Dataset 提供一种方式获取数据 及其对应的label 主要包含以下两个功能 如何获取每一个数据以及lab
  • RHCE-----------配置DNS服务------实操练习

    安装bind 关闭防火墙和selinux 启动named服务 关闭防火墙 重启named服务 编辑配置文件 重启服务 删除客户端本地hosts文件域名解析配置 将DNS服务器设为本机IP
  • 论文添加引用遇到问题

    应该选择红圈里的
  • 剑指 Offer 36. 二叉搜索树与双向链表

    剑指 Offer 36 二叉搜索树与双向链表 难度中等285 输入一棵二叉搜索树 将该二叉搜索树转换成一个排序的循环双向链表 要求不能创建任何新的节点 只能调整树中节点指针的指向 为了让您更好地理解问题 以下面的二叉搜索树为例 我们希望将这
  • 机器学习实战2(决策树篇)

    目录 1 决策树 2 决策树的构造 3 决策树的可视化 4 测试和存储决策树 1 决策树 你是否玩过二十个问题的游戏 游戏的规则很简单 参与游戏的一方在脑海里想某个事物 其他参与者向他提问题 只允许提20个问题 问题的答案也只能用对或错回答
  • QList(增删改查)示例

    特点 支持随机访问 其界面也是基于索引的 在中间的任意一端插入或移除项都是非常快速的 注 访问QList中的值时 尽量采用value int i 因为value查不到此值时会返回一个默认值0 而at int i 则会引起崩溃 并且at返回的