当前位置: 首页 > news >正文

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开发中&#xff0c; contains() 和 isEmpty()…...

极速搭建幻兽帕鲁私服,叫上好友春节假期一起联机畅玩帕鲁

文章目录 前言幻兽帕鲁私服详细部署教程查看服务器开始游戏自定义游戏参数配置 前言 行业资讯 《幻兽帕鲁》的火爆对开发商 Pocketpair 来说&#xff0c;代价是巨大的。该游戏的成功让首席执行官沟部拓郎最近在推特上表示&#xff0c;他可能因服务器运营费用而面临破产。据他透…...

MagicVideo-V2:多阶段高保真视频生成框架

本项工作介绍了MagicVideo-V2&#xff0c;将文本到图像模型、视频运动生成器、参考图像embedding模块和帧内插模块集成到端到端的视频生成流程中。由于这些架构设计的好处&#xff0c;MagicVideo-V2能够生成具有极高保真度和流畅度的美观高分辨率视频。通过大规模用户评估&…...

【三】【C++】类与对象(二)

类的六个默认成员函数 在C中&#xff0c;有六个默认成员函数&#xff0c;它们是编译器在需要的情况下自动生成的成员函数&#xff0c;如果你不显式地定义它们&#xff0c;编译器会自动提供默认实现。这些默认成员函数包括&#xff1a; 默认构造函数 (Default Constructor)&…...

ffmpeg 输入文件,输入出udp-ts 指定pid

要使用FFmpeg将输入文件转换为UDP传输流&#xff08;TS&#xff09;并指定特定的PID&#xff0c;您可以使用以下命令&#xff1a; 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的平替)

国内有非常多好用的人工智能工具&#xff0c;但均无法完全替代国外ChatGpt。 ChatGPT相较于其他国内工具的优势在于以下几点&#xff1a; 创新的语言生成能力&#xff1a;ChatGPT是由OpenAI开发的先进的自然语言生成模型&#xff0c;它采用了大规模的预训练和精细调整方法。因此…...

Stable Diffusion 模型下载:ReV Animated

模型介绍 该模型能够创建 2.5D 类图像生成。此模型是检查点合并&#xff0c;这意味着它是其他模型的产物&#xff0c;以创建从原始模型派生的产品。 条目内容类型大模型基础模型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 实现流程&#xff1a; 实现截图&#xff1a; 3.2 实例演示&#xff1a; 四、事务的隔离级别 幻读&#xff1a; 如何解决&#xff1a; 脏读&#xff1a; 不可重复读&#xff1a; 幻读和不可重复读两者区别…...

[C语言]结构体初识

结构体定义 结构体是一些值的集合,被成为成员变量,结构的每个成员可以是不同类型的变量 声明: 定义了一个结构体比如以张蓝图,不占据内存,当你创建了一个结构体变量时,才占空间. #include<stdio.h>//struct 为结构体关键字, student 自定义结构体名称 struct student …...

跨平台开发:浅析uni-app及其他主流APP开发方式

随着智能手机的普及&#xff0c;移动应用程序&#xff08;APP&#xff09;的需求不断增长。开发一款优秀的APP&#xff0c;不仅需要考虑功能和用户体验&#xff0c;还需要选择一种适合的开发方式。随着技术的发展&#xff0c;目前有多种主流的APP开发方式可供选择&#xff0c;其…...

MyBatis常见面试题汇总

说一下MyBatis执行流程&#xff1f; MyBatis是一款优秀的基于Java的持久层框架&#xff0c;它内部封装了JDBC&#xff0c;使开发者只需要关注SQL语句本身&#xff0c;而不需要花费精力去处理加载驱动、创建连接等的过程&#xff0c;MyBatis的执行流程如下&#xff1a; 加载配…...

juc并发线程学习笔记(一)

本系列会更新我在学习juc时的笔记和自己的一些思想记录。如有问题欢迎联系。 并发编程 进程与线程 1.进程和线程的概念 程序是静态的&#xff0c;进程是动态的 进程 程序由指令和数据组成&#xff0c;但这些指令要运行&#xff0c;数据要读写&#xff0c;就必须将指令加载…...

力扣热门100题刷题笔记 - 3.无重复字符的最长子串

力扣热门100题 - 3.无重复字符的最长子串 题目链接&#xff1a;3. 无重复字符的最长子串 题目描述&#xff1a; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例&#xff1a; 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字…...

达梦数据库死锁排查与解决

在达梦数据库系统中&#xff0c;死锁是指两个或多个事务相互等待对方释放资源&#xff0c;从而造成循环等待的现象&#xff0c;严重影响数据库的正常运行。以下是使用达梦数据库进行死锁排查和解决的具体步骤&#xff1a; 死锁查看 查询当前死锁信息 SELECT lc.lmode, lc.ta…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextClock组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之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是否成功&#xff1a; userusers-MacBook-Pro ~ % gitlab-runner -h 查看gitlab-run…...

关于Django部署

首先了解一下开发环境服务器跟生产环境服务器有何不同。 一、我们通过 python manage.py runserver 启动开发环境服务器&#xff0c;这条命令背后做了哪些事情&#xff1f; 1、首先加载Django项目的设置&#xff08;settings&#xff09; 2、检查数据库迁移&#xff0c;确保数…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...