qt-C++笔记之contains()和isEmpty()函数、以及部分其他函数列举
qt-C++笔记之contains()和isEmpty()函数、以及部分其他函数列举
code review!
文章目录
- qt-C++笔记之contains()和isEmpty()函数、以及部分其他函数列举
- contains()
- isEmpty()
- 类似的其他函数列举
- 通用容器类函数
- 字符串特有函数
在Qt C++开发中,
contains() 和
isEmpty() 是两个常用的函数,它们通常用于不同的类和上下文中来检查容器的内容。这里简要解释一下这两个函数的用法:
contains()
contains() 函数通常用于检查容器(如QString, QList, QMap等)是否包含某个特定的元素或键值对。根据所使用的容器类型,它的确切功能可能略有不同,但基本的用法是相似的。
-
QString: 检查字符串是否包含一个子串。
QString str = "Hello, world!"; bool containsHello = str.contains("Hello"); // 返回 true -
QList: 检查列表中是否存在某个元素。
QList<int> list = {1, 2, 3}; bool containsTwo = list.contains(2); // 返回 true -
QMap: 检查映射中是否存在某个键。
QMap<QString, int> map; map["apple"] = 2; map["banana"] = 3; bool containsApple = map.contains("apple"); // 返回 true
isEmpty()
isEmpty() 函数用于检查容器是否为空。在不同的容器类中,它用来判断容器内是否没有任何元素。
-
QString: 检查字符串是否为空。
QString str; bool empty = str.isEmpty(); // 如果str是空的,返回 true -
QList: 检查列表是否没有任何元素。
QList<int> list; bool empty = list.isEmpty(); // 如果list是空的,返回 true -
QMap: 检查映射是否没有任何键值对。
QMap<QString, int> map; bool empty = map.isEmpty(); // 如果map是空的,返回 true
这些函数都是非常高效的,因为它们通常是在容器的内部实现中直接检查状态,而不需要遍历整个容器。
使用这些函数时,请确保你的容器已经被适当地初始化,否则可能会遇到未定义的行为。在Qt中使用这些函数可以帮助你编写更加清晰和高效的代码。
类似的其他函数列举
Qt框架中提供了大量的函数来操作和查询其内置的数据结构。除了contains()和isEmpty()之外,还有许多其他有用的成员函数。下面列举了一些常见的函数,这些函数通常可用于各种容器类,如QString、QList、QVector、QMap、QSet等。
通用容器类函数
-
size()/count(): 返回容器中的元素数量。QList<int> list = {1, 2, 3}; int size = list.size(); // 返回 3 -
at()/operator[]: 返回容器中特定位置的元素(at()通常是只读的,而operator[]可以用于修改)。QVector<int> vector = {1, 2, 3}; int value = vector.at(1); // 返回 2 -
front()/back(): 返回容器中的第一个/最后一个元素。QList<int> list = {1, 2, 3}; int front = list.front(); // 返回 1 int back = list.back(); // 返回 3 -
begin()/end(): 提供迭代器到容器的开始和结束。QList<int> list = {1, 2, 3}; auto it = list.begin(); while (it != list.end()) {// Do something with *it++it; } -
insert(): 在容器中插入元素。QList<int> list; list.insert(list.begin(), 42); // 在list的开始位置插入 42 -
remove(): 移除容器中的特定元素。QVector<int> vector = {1, 2, 3}; vector.remove(1); // 移除索引为 1 的元素(即移除 2) -
clear(): 清空容器中的所有元素。QMap<QString, int> map; map["apple"] = 2; map.clear(); // 清空map
字符串特有函数
-
startsWith()/endsWith(): 检查字符串是否以特定的子串开始/结束。QString str = "Hello, world!"; bool starts = str.startsWith("Hello"); // 返回 true bool ends = str.endsWith("world!"); // 返回 true -
split(): 将字符串按照指定的分隔符分割为子串列表。QString str = "apple,banana,cherry"; QStringList fruits = str.split(","); // 返回 {"apple", "banana", "cherry"} -
toInt()/toFloat()/toDouble(): 转换字符串为整数/浮点数/双精度浮点数。QString number = "42"; int value = number.toInt(); // 返回 42 -
trimmed(): 返回去除字符串两端空白字符的副本。QString str = " Hello, world! "; QString trimmedStr = str.trimmed(); // 返回 "Hello, world!" -
toUpper()/toLower(): 将字符串转换为大写/小写。QString str = "Hello, World!"; QString upperStr = str.toUpper(); // 返回 "HELLO, WORLD!" QString lowerStr = str.toLower(); // 返回 "hello, world!"
相关文章:
qt-C++笔记之contains()和isEmpty()函数、以及部分其他函数列举
qt-C笔记之contains()和isEmpty()函数、以及部分其他函数列举 code review! 文章目录 qt-C笔记之contains()和isEmpty()函数、以及部分其他函数列举contains()isEmpty() 类似的其他函数列举通用容器类函数字符串特有函数 在Qt C开发中, contains() 和 isEmpty()…...
极速搭建幻兽帕鲁私服,叫上好友春节假期一起联机畅玩帕鲁
文章目录 前言幻兽帕鲁私服详细部署教程查看服务器开始游戏自定义游戏参数配置 前言 行业资讯 《幻兽帕鲁》的火爆对开发商 Pocketpair 来说,代价是巨大的。该游戏的成功让首席执行官沟部拓郎最近在推特上表示,他可能因服务器运营费用而面临破产。据他透…...
MagicVideo-V2:多阶段高保真视频生成框架
本项工作介绍了MagicVideo-V2,将文本到图像模型、视频运动生成器、参考图像embedding模块和帧内插模块集成到端到端的视频生成流程中。由于这些架构设计的好处,MagicVideo-V2能够生成具有极高保真度和流畅度的美观高分辨率视频。通过大规模用户评估&…...
【三】【C++】类与对象(二)
类的六个默认成员函数 在C中,有六个默认成员函数,它们是编译器在需要的情况下自动生成的成员函数,如果你不显式地定义它们,编译器会自动提供默认实现。这些默认成员函数包括: 默认构造函数 (Default Constructor)&…...
ffmpeg 输入文件,输入出udp-ts 指定pid
要使用FFmpeg将输入文件转换为UDP传输流(TS)并指定特定的PID,您可以使用以下命令: ffmpeg -i input_file -c:v libx264 -preset ultrafast -tune zerolatency -f mpegts -map 0:v:0 -map 0:a:0 -pid 0x12345678 udp://output_addr…...
自研人工智能小工具-小蜜蜂(国外ChatGpt的平替)
国内有非常多好用的人工智能工具,但均无法完全替代国外ChatGpt。 ChatGPT相较于其他国内工具的优势在于以下几点: 创新的语言生成能力:ChatGPT是由OpenAI开发的先进的自然语言生成模型,它采用了大规模的预训练和精细调整方法。因此…...
Stable Diffusion 模型下载:ReV Animated
模型介绍 该模型能够创建 2.5D 类图像生成。此模型是检查点合并,这意味着它是其他模型的产物,以创建从原始模型派生的产品。 条目内容类型大模型基础模型SD 1.5来源CIVITAI作者s6yx文件名称revAnimated_v122EOL.safetensors文件大小5.13GB 生成案例 …...
某赛通电子文档安全管理系统 PolicyAjax SQL注入漏洞复现
0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…...
Prometheus 采集Oracle监控数据
前言 oracledb_exporter是一个开源的Prometheus Exporter,用于从Oracle数据库中收集关键指标并将其暴露给Prometheus进行监控和告警。它可以将Oracle数据库的性能指标转换为Prometheus所需的格式,并提供一些默认的查询和指标。 download Oracle Oracle Windows Install …...
【ARM Trace32(劳特巴赫) 使用介绍 3.1 -- 不 attach core 直接访问 memory】
文章目录 背景介绍背景介绍 在使用 trace32 时在有些场景需要不 attach core 然后去读写 memory,比如在某些情况下 core 已经挂死连接不上了,这个时候需要dump内存,这个时候需要怎做呢? print "test for memory access directly";SYStem.OPTION WAITRESET OF…...
MySQL事务和SQL优化
目录 一、什么是事务 二、事务的特征 三、MySQL使用事务 3.1 实现流程: 实现截图: 3.2 实例演示: 四、事务的隔离级别 幻读: 如何解决: 脏读: 不可重复读: 幻读和不可重复读两者区别…...
[C语言]结构体初识
结构体定义 结构体是一些值的集合,被成为成员变量,结构的每个成员可以是不同类型的变量 声明: 定义了一个结构体比如以张蓝图,不占据内存,当你创建了一个结构体变量时,才占空间. #include<stdio.h>//struct 为结构体关键字, student 自定义结构体名称 struct student …...
跨平台开发:浅析uni-app及其他主流APP开发方式
随着智能手机的普及,移动应用程序(APP)的需求不断增长。开发一款优秀的APP,不仅需要考虑功能和用户体验,还需要选择一种适合的开发方式。随着技术的发展,目前有多种主流的APP开发方式可供选择,其…...
MyBatis常见面试题汇总
说一下MyBatis执行流程? MyBatis是一款优秀的基于Java的持久层框架,它内部封装了JDBC,使开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动、创建连接等的过程,MyBatis的执行流程如下: 加载配…...
juc并发线程学习笔记(一)
本系列会更新我在学习juc时的笔记和自己的一些思想记录。如有问题欢迎联系。 并发编程 进程与线程 1.进程和线程的概念 程序是静态的,进程是动态的 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载…...
力扣热门100题刷题笔记 - 3.无重复字符的最长子串
力扣热门100题 - 3.无重复字符的最长子串 题目链接:3. 无重复字符的最长子串 题目描述: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字…...
达梦数据库死锁排查与解决
在达梦数据库系统中,死锁是指两个或多个事务相互等待对方释放资源,从而造成循环等待的现象,严重影响数据库的正常运行。以下是使用达梦数据库进行死锁排查和解决的具体步骤: 死锁查看 查询当前死锁信息 SELECT lc.lmode, lc.ta…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextClock组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextClock组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、TextClock组件 TextClock组件通过文本将当前系统时间显示在设备上。支持不同…...
CICD注册和使用gitlab-runner常见问题
1、现象 fatal: unable to access https://github.com/homebrew/brew/: 2、解决 git config --global --unset http.proxy git config --global --unset https.proxy 查看gitlab-runner是否成功: userusers-MacBook-Pro ~ % gitlab-runner -h 查看gitlab-run…...
关于Django部署
首先了解一下开发环境服务器跟生产环境服务器有何不同。 一、我们通过 python manage.py runserver 启动开发环境服务器,这条命令背后做了哪些事情? 1、首先加载Django项目的设置(settings) 2、检查数据库迁移,确保数…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
ubuntu中安装conda的后遗症
缘由: 在编译rk3588的sdk时,遇到编译buildroot失败,提示如下: 提示缺失expect,但是实测相关工具是在的,如下显示: 然后查找借助各个ai工具,重新安装相关的工具,依然无解。 解决&am…...
Copilot for Xcode (iOS的 AI辅助编程)
Copilot for Xcode 简介Copilot下载与安装 体验环境要求下载最新的安装包安装登录系统权限设置 AI辅助编程生成注释代码补全简单需求代码生成辅助编程行间代码生成注释联想 代码生成 总结 简介 尝试使用了Copilot,它能根据上下文补全代码,快速生成常用…...
RabbitMQ 各类交换机
为什么要用交换机? 交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机 交换机类型 1,fanout:广播 特点 广播所有消息:将消息…...
