-
C++ search 函数用法完全攻略
所属栏目:[语言] 日期:2022-07-17 热度:135
通过《C++ find_end()函数》一节的讲解我们知道,find_end() 函数用于在序列 A 中查找序列 B 最后一次出现的位置。那么,如果想知道序列 B 在序列 A 中第一次出现的位置,该如何实现呢?可以借助 search() 函数。 search() 函数定义在algorithm头文件中,[详细]
-
C++ adjacent_find 函数用法详解
所属栏目:[语言] 日期:2022-07-17 热度:58
adjacent_find() 函数用于在指定范围内查找 2 个连续相等的元素。该函数的语法格式为: //查找 2 个连续相等的元素 ForwardIterator adjacent_find (ForwardIterator first, ForwardIterator last); //查找 2 个连续满足 pred 规则的元素 ForwardIterator[详细]
-
Qt是什么?Qt简介很全面
所属栏目:[语言] 日期:2022-07-16 热度:64
Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。 Qt 是纯 C++ 开发的,所以学好 C++ 非常有必要,[详细]
-
Qt和其它GUI库的比较
所属栏目:[语言] 日期:2022-07-16 热度:129
世界上的 GUI 库多如牛毛,有的跨平台,有的专属于某个操作系统;有的只有 UI 功能,有的还融合了网络通信、多媒体处理、数据库访问等底层功能。 Windows 下的 GUI 库 Windows 下的 GUI 解决方案比较多: 基于 C++ 的有 Qt、MFC、WTL、wxWidgets、DirectUI[详细]
-
学习QML或是C++
所属栏目:[语言] 日期:2022-07-16 热度:195
Qt4 时代的主流就是传统部件(或叫控件)编程,所用的语言一般是 C++。 Qt5 诞生之时,正是手机移动设备蓬勃发展的时候,而传统的 C++ 部件编写的界面对手机应用程序非常方便,比如手机屏幕显示随意翻转, 这在传统桌面程序里基本遇不到,谁会将 22 寸显示[详细]
-
C++ lower_bound 函数用法解析
所属栏目:[语言] 日期:2022-07-16 热度:61
前面章节中,已经给大家系统地介绍了几个查找函数,如 find()、find_if()、search() 等。值得一提的是,这些函数的底层实现都采用的是顺序查找(逐个遍历)的方式,在某些场景中的执行效率并不高。例如,当指定区域内的数据处于有序状态时,如果想查找某个[详细]
-
C++ STL all_of any_of及none_of算法细说
所属栏目:[语言] 日期:2022-07-16 热度:180
algorithm 头文件中定义了 3 种算法,用来检查在算法应用到序列中的元素上时,什么时候使谓词返回 true。这些算法的前两个参数是定义谓词应用范围的输入迭代器;第三个参数指定了谓词。检查元素是否能让谓词返回 true 似乎很简单,但它却是十分有用的。 例[详细]
-
C++ equal STL equal 对比算法详解
所属栏目:[语言] 日期:2022-07-16 热度:57
可以用和比较字符串类似的方式来比较序列。如果两个序列的长度相同,并且对应元素都相等,equal() 算法会返回 true。有 4 个版本的 equal() 算法,其中两个用 == 运算符来比较元素,另外两个用我们提供的作为参数的函数对象来比较元素,所有指定序列的迭代[详细]
-
C++ STL lexicographical_compare字符串排序算法说明
所属栏目:[语言] 日期:2022-07-16 热度:133
两个字符串的字母排序是通过从第一个字符开始比较对应字符得到的。第一对不同的对应字符决定了哪个字符串排在首位。字符串的顺序就是不同字符的顺序。如果字符串的长度相同,而且所有的字符都相等,那么这些字符串就相等。如果字符串的长度不同,短字符串[详细]
-
C++ move STL move 函数运用详解
所属栏目:[语言] 日期:2022-07-16 热度:138
move() 算法会将它的前两个输入迭代器参数指定的序列移到第三个参数定义的目的序列的开始位置,第三个参数必须是输出迭代器。这个算法返回的迭代器指向最后一个被移动到目的序列的元素的下一个位置。 这是一个移动操作,因此无法保证在进行这个操作之后,[详细]
-
C++ swap_ranges STL swap_ranges 函数利用详解
所属栏目:[语言] 日期:2022-07-16 热度:151
可以用 swap_ranges() 算法来交换两个序列。这个算法需要 3 个正向迭代器作为参数。前两个参数分别是第一个序列的开始和结束迭代器,第三个参数是第二个序列的开始迭代器。显然,这两个序列的长度必须相同。这个算法会返回一个迭代器,它指向第二个序列的[详细]
-
C++ fill和fill_n函数用法解说
所属栏目:[语言] 日期:2022-07-16 热度:156
fill() 和 fill_n() 算法提供了一种为元素序列填入给定值的简单方式,fill() 会填充整个序列; fill_n() 则以给定的迭代器为起始位置,为指定个数的元素设置值。下面展示了 fill() 的用法: std::vectorstring data {12}; // Container has 12 elements st[详细]
-
UE4使用哪种编译器
所属栏目:[语言] 日期:2022-07-16 热度:57
UE4 的底层虽然是用 C++ 实现的,但它又不仅仅是一个 C++ 库,它还实现了自己的编译机制。换句话说,UE4 对现有的 C++ 语法进行了改进,以适应游戏开发的场景。 当然,UE4 也不会疯狂到自己去开发一个 C++ 编译器,它还是需要依赖传统的 C++ 编译器以及相[详细]
-
Linux Qt cannot find -lGL错误完美解决方法
所属栏目:[语言] 日期:2022-07-16 热度:133
对于很多 Linux 发行版本,Qt 安装完成后如果直接编译或者运行项目,会出现cannot find -lGL错误, 这是因为 Qt 找不到 OpenGL 的动态链接库(libGL.so)。在《Linux Qt安装》一节中我们说过,OpenGL 在大部分 Linux 发行版中都是默认安装的,包括 Ubuntu[详细]
-
解密Qt安装目录的构架
所属栏目:[语言] 日期:2022-07-16 热度:135
了解 Qt 安装目录的结构虽然不是编程必须的,但是它能练就我们的内功,让我们对 Qt 的编程环境了如指掌。Windows 和 Linux 下 Qt 安装目录的结构非常相似,我们以 Windows 为例进行讲解,Linux 不再赘述。 不同版本 Qt 的安装目录结构大同小异,本节我们以[详细]
-
知晓一下Qt用到的开发工具
所属栏目:[语言] 日期:2022-07-16 热度:175
Qt 不是凭空产生的,它是基于现有工具链打造而成的,它所使用的编译器、链接器、调试器等都不是自己的,Qt 官方只是开发了上层工具。下面我们分几个部分讲解 Qt 使用到的工具链。 GNU 工具集 在上个世纪八十年代,计算机都是奢侈品,操作系统里最著名的是[详细]
-
Qt编程涉及的术语与名词
所属栏目:[语言] 日期:2022-07-16 热度:194
本节我们来介绍一下使用 Qt 编程过程中常用的术语和名字,它们不一定专属于 Qt,在其它的 C/C++ 开发过程中也会使用到。 Project Project 的中文翻译是项目或者工程,这里的项目是指为实现某个相对独立功能的程序代码合集,这些代码不单单是放在一块,而是[详细]
-
解析第一个Qt程序
所属栏目:[语言] 日期:2022-07-16 热度:134
前面章节中,通过在 xxx.ui 文件中拖拽 Label 组件,设计出了一个显示 Hello,World! 的窗口 本节我们完全舍弃 xxx.ui 文件,亲手编写代码实现界面。 创建项目 首先,打开 Qt Creator 并创建一个 Qt Widgets Application 项目,创建过程可以参考 《编写第一[详细]
-
编辑第一个Qt程序
所属栏目:[语言] 日期:2022-07-16 热度:114
学习一种编程语言或编程环境,通常会先编写一个Hello World程序。我们也用 Qt Creator 编写一个Hello World程序,以初步了解 Qt Creator 设计应用程序的基本过程,对使用 Qt Creator 编写 Qt C++ 应用程序建立初步的了解。 新建一个项目 单击 Qt Creator[详细]
-
Qt Creator的初步利用
所属栏目:[语言] 日期:2022-07-16 热度:152
启动 Qt Creator, Qt Creator 的界面很简洁。上方是主菜单栏,左侧是主工具栏,窗口的中间部分是工作区。根据设计内容不同,工作区会显示不同的内容。 图 1 是在左侧主工具栏单击Welcome(欢迎)按钮后显示实例的界面。这时工作区的左侧有 Projects、Exam[详细]
-
UE4的下载和安置 UE4开发环境的搭建
所属栏目:[语言] 日期:2022-07-16 热度:108
使用 UE4 开发游戏之前,必须先搭建开发环境,具体包括: 1) 首先,打开任意一个浏览器输入 UE4 官方网站的网址 https://www.unrealengine.com/zh-CN/,点击右上角的下载按钮,如下图所示: 2) 官方要求必须登录后才能下载,所以大家需要先创建一个账户。[详细]
-
UE4是什么 虚幻4引擎是啥
所属栏目:[语言] 日期:2022-07-16 热度:97
UE4 的全名是 Unreal Engine 4,中文译为虚幻引擎4。UE4 是一款由 Epic Games 公司开发的开源、商业收费、学习免费的游戏引擎。 从 1998 年发行至今,UE4 一共经历了 UE、UE2、UE2.5、UE3、UDK、UE4 多个版本,它的迭代速度极快,现在已经到了 4.22 预览版[详细]
-
C++ STL插入迭代器适配器 insert_iterator
所属栏目:[语言] 日期:2022-07-16 热度:168
《C++ STL反向迭代器》一节讲解了反向迭代器适配器的功能和用法,本节继续讲解 C++ STL 标准库提供的另一类型迭代器适配器,即插入迭代器适配器。 插入迭代器适配器(insert_iterator),简称插入迭代器或者插入器,其功能就是向指定容器中插入元素。值得[详细]
-
C++ STL advance 函数用法详解
所属栏目:[语言] 日期:2022-07-16 热度:97
通过前面的学习,已经讲解了 C++ STL 标准库中所有的基础迭代器以及迭代器适配器的用法。但除此之外,为了方便用户操作这些迭代器,C++ STL 标准库中还提供有一些辅助函数,如表 1 所示。 表 1 C++ STL迭代器辅助函数 迭代器辅助函数 功能 advance(it, n)[详细]
-
C++ STL begin 和end 函数用法
所属栏目:[语言] 日期:2022-07-16 热度:189
在前面章节中,我们已经对 C++ STL标准库提供的所有容器做了系统的讲解。读者可能已经注意到,无论是序列式容器还是关联式容器(包括哈希容器),不仅模板类内部提供有 begin() 和 end() 成员方法,C++ STL 标准库中还提供有同名且具有相同功能的 begin()[详细]