看了大佬的代码,发现他们都喜欢用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效率实践相关推荐

  1. Qt工作笔记-QString中arg的使用(可用于SQL语句拼接)

    文档内的例子如下: 下面用一个小demo演示下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>nam ...

  2. Qt工作笔记-Qt5中中文编码方面的笔记

    目前在使用国内的数据库和实时库接口. 说句实话,国内的东西与国外的东西比,在用户体验和接口调用上比还是存在很大的距离. 个人喜欢用QString去存储数据.个人感觉QTL比STL开发起来要快点 这里有 ...

  3. Qt工作笔记-profile中INSTALLS的使用

    最近在撸国外的Qt教程,可能是我开始崇洋媚外了,国外的东西的确香. 在此记录下查漏补缺的内容,方便以后查阅. pro文件中可以配置INSTALLS这个变量 使用make install后可以将编译好的 ...

  4. Qt工作笔记-QXmlStreamReader中的字符编码的坑

    以本人这篇博文的源码为例: https://blog.csdn.net/qq78442761/article/details/80501909 源码改成如下所示: #include <QAppl ...

  5. Qt工作笔记-QSS中关于QCombox的设置

    QSS源码如下: QComboBox { border: 1px solid rgb(0, 0, 0); border-radius: 3px; padding: 1px 18px 1px 3px; ...

  6. Qt工作笔记-QPlainTextEdit中数据的获取

    逻辑如下: 1.使用QPlainText中的documnet获取文档指针: 2.遍历这个文档指针(操作和适配器一样) 程序运行截图如下: 源码如下: widget.h #ifndef WIDGET_H ...

  7. Qt工作笔记-QTreeWidgetItem中type的基本用法

    这是一个很好的东西. 话不多说,运行截图如下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #in ...

  8. Qt工作笔记-QTreeWidgetItem中的CheckState以及遍历选中的CheckBox

    话不多说,程序运行如下: 原理如下: 使用QTreeWidget添加QTreeWidgetItem,并且打开QTreeWidgetItem里面的setCheckState,这个选项. 就可以实现在QT ...

  9. Qt工作笔记-QTreeWidget中itemAt中的坑

    程序运行截图如下: 用:QTreeWidgetItem *currItem=ui->treeWidget->itemAt(0,0); (0,0)点坐标,当滚动条没有拉动的时候: 点击这个页 ...

最新文章

  1. python 工业自动化 人工智能_Python人工智能之路 - 第三篇 : PyAudio 实现录音 自动化交互实现问答...
  2. SCCM2012 R2实战系列之九:OSD(中)-- 捕获镜像
  3. TensorFlow 1.2正式发布,新增Python 3.6支持
  4. eclipse怎么导入maven项目 eclipse导入maven项目详细教程
  5. 软件工程 --第七章 -- 实现(未完)
  6. fcntl函数之文件锁 F_SETLKW
  7. 如何手工完全卸载SQL SERVER 2000数据库
  8. Matlab常见问题处理——错误使用 xlswrite (line 219),调用错误,调度异常: 参数错误。
  9. mimo+matlab代码,mimo-matlab代码
  10. oracle外关联更新操作,记要oracle 关联更新的例子
  11. oracle明文传输http,oracle密码在网络传输中的安全问题
  12. 百面机器学习 #2 模型评估:03 余弦距离和余弦相似度、欧氏距离
  13. django ForeignKey的swappable属性
  14. kotlin转java_Kotlin 与 Java 代码之间的转换
  15. 偏最小二乘法_实例讲解:简明扼要最小二乘法计算过程
  16. 绘图用计算机软件的基本种类有,主编教您电脑绘图软件有哪些
  17. 【ARM】Linaro Security module
  18. 商业银行的起源与经营模式-分业经营与混业经营
  19. Python-OpenCV-PS油画滤镜效果
  20. android fake camera,码市 - No.22987 - android fake camera - 其他

热门文章

  1. 初学者注意:你需要明白编程的意义所在,否则是学不好编程的!
  2. C 语言程序设计基础不好,想10天考国二C语言程序设计证书,可能吗?
  3. 现代办公通讯手段对比分析
  4. 规范化编程:ANSI和UNICODE的使用
  5. 3.8女神节:我又送福利 书和化妆品 男女通吃
  6. 程序员想趁头发还在找个女友,标准:是女的就行
  7. 计算机扩展卡,对于电脑来说, 扩展卡是什么?与接口又有什么关系呢?
  8. mysql found row_mysql found_row()使用详解
  9. 无监督学习 | KMeans与KMeans++原理
  10. 颠覆教科书:打破50年来的认知,DNA同义突变会影响蛋白质折叠,进而影响细胞生长...