QT学习笔记(十):通用算法示例
QT学习笔记(十):通用算法示例
std是C++标准库统一使用的命名空间(namespace)的名称,C++标准库中的名字全部都在std这个命名空间中,std也就是英文"standard"(标准)的缩写。
#include <QCoreApplication>
#include <QVector>
#include <QStringList>
#include <QDebug>#include <functional> //因为用了std::greater<int>()
#include <algorithm> // STL 标准模板算法库 int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QStringList list;list << "one" << "two" << "three";// 1、将list中所有项目复制到vect中qDebug() << QObject::tr("std::copy算法:");QVector<QString> vect(3);std::copy(list.begin(), list.end(), vect.begin());qDebug() << vect;//结果为one,two,three///2、从list的开始到结束的所有项目与vect的开始及其后面的等数量的项目进行比较,// 全部相同则返回trueqDebug() << endl << QObject::tr("std::equal算法:");bool ret1 = std::equal(list.begin(), list.end(), vect.begin());qDebug() << "euqal: " << ret1; //结果为true// 3、从list中查找"two",返回第一个对应的值的迭代器,如果没有找到则返回end()qDebug() << endl << QObject::tr("std::find算法:");QList<QString>::iterator i = std::find(list.begin(), list.end(), "two");qDebug() << *i; // 结果为"two"///4、将list中的所有项目填充为"eleven"qDebug() << endl << QObject::tr("std::fill算法:");std::fill(list.begin(), list.end(), "eleven");qDebug() << list; // 结果eleven,eleven,elevenQList<int> list1;list1 << 3 << 3 << 6 << 6 << 6 << 8;// 5、查找6的个数qDebug() << endl << QObject::tr("std::count算法:");int countOf6 = std::count(list1.begin(), list1.end(), 6);qDebug() << "countOf6: " << countOf6; // 结果为3// 6、返回第一个出现5的位置,如果没有5,则返回5应该在的位置,// list1被查找的范围中的项目必须是升序qDebug() << endl << QObject::tr("std::lower_bound算法:");QList<int>::iterator j = std::lower_bound(list1.begin(), list1.end(), 5);list1.insert(j, 5);qDebug() << list1; // 结果3,3,5,6,6,6,8QList<int> list2;list2 << 33 << 12 << 68 << 6 << 12;//7、使用快速排序算法对list2进行升序排序,排序后两个12的位置不确定qDebug() << endl << QObject::tr("std::sort算法:");std::sort(list2.begin(), list2.end());qDebug() << list2; // 结果6,12,12,33,68// 8、使用一种稳定排序算法对list2进行升序排序,// 排序前在前面的12,排序后依然在前面qDebug() << endl << QObject::tr("std::stable_sort算法:");std::stable_sort(list2.begin(), list2.end());qDebug() << list2; // 结果6,12,12,33,68///9、可以在qSort()算法中使其反向排序(替代std::sort)qDebug() << endl << QObject::tr("std::greater算法:");qSort(list2.begin(), list2.end(), std::greater<int>());qDebug() << list2; // 结果68,33,12,12,6// 10、交换pi和e的值qDebug() << endl << QObject::tr("std::swap算法:");double pi = 3.14;double e = 2.71;std::swap(pi, e); qDebug() << "pi:" << pi << "e:" << e; // 结果pi=2.71,e=3.14return a.exec();
}
运行结果:
QT学习笔记(十):通用算法示例相关推荐
- Qt学习笔记(十八):QListWidget 的常用方法
向列表中添加数据:共有三种方式 1.void QListWidget::addItem(const QString & label):直接向列表中添加文本信息: QListWidget *li ...
- QT学习笔记(十六):setwindowflags的属性总结
QT学习笔记(十六):setwindowflags的属性总结 此枚举类型用于为小部件指定各种窗口系统属性.它们是不常用的,但在一些情况下是必要的.其中一些标志取决于底层窗口管理器是否支持它们. 主要类 ...
- QT学习笔记(十四):QLayout的属性介绍
QT学习笔记(十四):QLayout的属性介绍 主要包括QBoxLayout.和QGridLayout以及QFormLayout等的参数类似. 我主要说明一下QGridLayout在QtDesigne ...
- QT学习笔记(十二):透明窗体设置
QT学习笔记(十二):透明窗体设置 创建 My_Widget 类 基类为QWidget , My_Widget.cpp 源文件中添加代码 #include "widget.h" # ...
- QT学习笔记(六):Qt5主窗口框架示例
QT学习笔记(五):Qt5主窗口框架代码示例 一.添加编辑菜单:并在下拉菜单和工具栏中添加"打开文件"动作菜单 #include <QToolButton> #incl ...
- QT学习笔记(五):Qt5的8种标准对话框示例
QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...
- QT学习笔记(九):遍历容器-迭代器(iterators)
QT学习笔记(九):遍历容器-迭代器(iterators) 遍历容器 : 1.Jave风格: 2.STL风格: 3.foreach 关键字: 遍历容器 : 遍历一个容器可以使用迭代器(iterator ...
- QT学习笔记(八):顺序容器和关联容器
QT学习笔记(八):顺序容器和关联容器 一.前言 二.容器介绍 2.1 顺序容器 2.2 关联容器 二.顺序容器示例 三.关联容器 一.前言 在Qt库中为我们提供了一系列的基于模板的容器类(conta ...
- Python语言入门这一篇就够了-学习笔记(十二万字)
Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...
最新文章
- SQLHELPER C#
- Java创建一个文件变量_java如何定义一个类,创建它的成员变量和方法?
- 在双向链表存储结构中,删除p所指的结点时,须修改指针()【选择题】
- 经典java程序员的面试题及答案
- 计算机组装活动口号,广教育、多技能、求发展喜迎计算机系第五届电脑文化节...
- python循环报数游戏_报数游戏python 解答
- JAVA练习173-幂集
- js java 乱码_js和java 中文乱码
- QT的Q3DScatter使用(三维可视图)
- 城市信息学其五-空间经济学、城市信息学、和交通便利
- 2022安全员-C证考试题库及答案
- 2019考研英语熟词生义
- 【SaaS培训认证】AWS Solutions Architect Associate
- ArcEngine中的ICommand接口和ITool接口
- CSDN无法上传资源解决方法
- 投资有赞知乎,百度App日活突破2亿,百度要回归产品公司?
- 从一个表格render方法问题看React函数组件的更新
- php如何打开excel文件,如何使用php获取excel文件数据
- 荣耀十支持鸿蒙OS,不是所有华为荣耀手机都能升级华为鸿蒙OS,只有这48款才行...
- ajax调用ashx页面内的方法
热门文章
- java部署jar还是war优劣_详解Spring Boot 部署jar和war的区别
- android studio电影院选座,8排电影院选座最佳位置
- 论文浅尝 - WSDM20 | 基于弱监督及逐步推理的多关系知识图谱问答
- paddlenlp 任务清单 中文分词、中文纠错、文本相似度、情感分析、词性标注等一键
- 用训练好的paddlepaddle模型继续训练模型和验证数据ckpt
- DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上的应用+距离运算
- DTW动态时间规整算法
- 干货 | 搞定用户画像只需5个步骤
- javascript的性能优化
- Android Studio 设置字体