Qt工作笔记-QString中Split与section效率实践
看了大佬的代码,发现他们都喜欢用section,对spilt感觉,他们不太喜欢用!!
下面对这两个函数进行简单的分析
split在官方的说明如下:
并且在最后,还给出了这个:
说名section与split可以实现某种相同的功能!
来看下section的函数:
可以知道这个函数比较复杂,他可以用1行代码,实现split 几行代码的功能;并且还提供了一个flags。
这里给出他们变量xxxxx,xxxxxxxx,xxxxxxxxx....这种用逗号分割的字符串,
看看效【一共有10086条这样的数据】:
首先是Split函数:
效率如下【部分电脑应该不同,本人笔记本i5 4代的,比较辣鸡】:
,,然后是section函数:
效率如下:
总结下:
1.当简单对字符串处理的时候优先考虑split函数,当要实现复制的就用section函数;
2.section比split高级,因为最后一个参数是flag,这个参数看着就让人兴奋!
源码如下:
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected slots:void splitBtnClicked();void sectionBtnClicked();private:Ui::Widget *ui;QString m_str;int m_strCount;
};#endif // WIDGET_H
main.cpp
#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QMessageBox>
#include <ctime>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);this->setWindowTitle("CSDN IT1995");connect(ui->splitPushButton,SIGNAL(clicked(bool)),this,SLOT(splitBtnClicked()));connect(ui->sectionPushButton,SIGNAL(clicked(bool)),this,SLOT(sectionBtnClicked()));m_str="11111111,22222222,33333333";for(int i=0;i<10083;i++){m_str.append(",xxxxxxxxxxx");}m_strCount=m_str.split(",").size();
}Widget::~Widget()
{delete ui;
}void Widget::splitBtnClicked()
{clock_t start,finish;double totalTime;//using "qDebug()" to simulate operationstart=clock();QStringList list=m_str.split(",");for(int i=0;i<m_strCount;i++){qDebug()<<list[i];}finish=clock();totalTime=(double)(finish-start)/CLOCKS_PER_SEC;QMessageBox::information(this,"information","using split() takes "+QString::number(totalTime,'f',6)+" second!");
}void Widget::sectionBtnClicked()
{clock_t start,finish;double totalTime;//using "qDebug()" to simulate operationstart=clock();for(int i=0;i<m_strCount;i++){qDebug()<<m_str.section(",",i,i);}finish=clock();totalTime=(double)(finish-start)/CLOCKS_PER_SEC;QMessageBox::information(this,"information","using split() takes "+QString::number(totalTime,'f',6)+" second!");
}
Qt工作笔记-QString中Split与section效率实践相关推荐
- Qt工作笔记-QString中arg的使用(可用于SQL语句拼接)
文档内的例子如下: 下面用一个小demo演示下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>nam ...
- Qt工作笔记-Qt5中中文编码方面的笔记
目前在使用国内的数据库和实时库接口. 说句实话,国内的东西与国外的东西比,在用户体验和接口调用上比还是存在很大的距离. 个人喜欢用QString去存储数据.个人感觉QTL比STL开发起来要快点 这里有 ...
- Qt工作笔记-profile中INSTALLS的使用
最近在撸国外的Qt教程,可能是我开始崇洋媚外了,国外的东西的确香. 在此记录下查漏补缺的内容,方便以后查阅. pro文件中可以配置INSTALLS这个变量 使用make install后可以将编译好的 ...
- Qt工作笔记-QXmlStreamReader中的字符编码的坑
以本人这篇博文的源码为例: https://blog.csdn.net/qq78442761/article/details/80501909 源码改成如下所示: #include <QAppl ...
- Qt工作笔记-QSS中关于QCombox的设置
QSS源码如下: QComboBox { border: 1px solid rgb(0, 0, 0); border-radius: 3px; padding: 1px 18px 1px 3px; ...
- Qt工作笔记-QPlainTextEdit中数据的获取
逻辑如下: 1.使用QPlainText中的documnet获取文档指针: 2.遍历这个文档指针(操作和适配器一样) 程序运行截图如下: 源码如下: widget.h #ifndef WIDGET_H ...
- Qt工作笔记-QTreeWidgetItem中type的基本用法
这是一个很好的东西. 话不多说,运行截图如下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #in ...
- Qt工作笔记-QTreeWidgetItem中的CheckState以及遍历选中的CheckBox
话不多说,程序运行如下: 原理如下: 使用QTreeWidget添加QTreeWidgetItem,并且打开QTreeWidgetItem里面的setCheckState,这个选项. 就可以实现在QT ...
- Qt工作笔记-QTreeWidget中itemAt中的坑
程序运行截图如下: 用:QTreeWidgetItem *currItem=ui->treeWidget->itemAt(0,0); (0,0)点坐标,当滚动条没有拉动的时候: 点击这个页 ...
最新文章
- python 工业自动化 人工智能_Python人工智能之路 - 第三篇 : PyAudio 实现录音 自动化交互实现问答...
- SCCM2012 R2实战系列之九:OSD(中)-- 捕获镜像
- TensorFlow 1.2正式发布,新增Python 3.6支持
- eclipse怎么导入maven项目 eclipse导入maven项目详细教程
- 软件工程 --第七章 -- 实现(未完)
- fcntl函数之文件锁 F_SETLKW
- 如何手工完全卸载SQL SERVER 2000数据库
- Matlab常见问题处理——错误使用 xlswrite (line 219),调用错误,调度异常: 参数错误。
- mimo+matlab代码,mimo-matlab代码
- oracle外关联更新操作,记要oracle 关联更新的例子
- oracle明文传输http,oracle密码在网络传输中的安全问题
- 百面机器学习 #2 模型评估:03 余弦距离和余弦相似度、欧氏距离
- django ForeignKey的swappable属性
- kotlin转java_Kotlin 与 Java 代码之间的转换
- 偏最小二乘法_实例讲解:简明扼要最小二乘法计算过程
- 绘图用计算机软件的基本种类有,主编教您电脑绘图软件有哪些
- 【ARM】Linaro Security module
- 商业银行的起源与经营模式-分业经营与混业经营
- Python-OpenCV-PS油画滤镜效果
- android fake camera,码市 - No.22987 - android fake camera - 其他
热门文章
- 初学者注意:你需要明白编程的意义所在,否则是学不好编程的!
- C 语言程序设计基础不好,想10天考国二C语言程序设计证书,可能吗?
- 现代办公通讯手段对比分析
- 规范化编程:ANSI和UNICODE的使用
- 3.8女神节:我又送福利 书和化妆品 男女通吃
- 程序员想趁头发还在找个女友,标准:是女的就行
- 计算机扩展卡,对于电脑来说, 扩展卡是什么?与接口又有什么关系呢?
- mysql found row_mysql found_row()使用详解
- 无监督学习 | KMeans与KMeans++原理
- 颠覆教科书:打破50年来的认知,DNA同义突变会影响蛋白质折叠,进而影响细胞生长...