C++编写头文件
文章转自公众号:Coder梁(ID:Coder_LT)
我们之前做的左右示例都是在一个单独的cpp文件当中完成的,当我们要做一个相对复杂或大型的项目时,我们显然不能把所有代码都写在一个cpp里。这就需要我们拆分代码,但代码按照逻辑划分,写入不同的cpp文件当中。
在我们编译的时候,我们可以...[2021/12/17]
C++解决输出链表中倒数k个结点的问题
目录题目描述示例解题思路测试代码补充 题目描述
输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。
如果该链表长度小于k,请返回一个长度为 0 的链表。
数据范围:0<=n<=10^5,0<=ai<=10^9,0<=k&l...[2021/12/15]
C/C++ Qt 数据库与Chart实现历史数据展示
在前面的博文中具体介绍了QChart组件是如何绘制各种通用的二维图形的,本章内容将继续延申一个新的知识点,通过数据库存储某一段时间节点数据的走向,当用户通过编辑框提交查询记录时,程序自动过滤出该时间节点下所有的数据,并将该数据动态绘制到图形组件内,实现动态查询图形的功能。
首先通过如下代码,创...[2021/12/15]
深入了解C++异常处理
目录基本的异常处理怎么抛出异常捕获和处理异常不存在异常的描述 --- 标识性作用? ??删减符 ...异常处理中的传参操作? --- 可以写一个变量进去可以抛出自己类的对象标准库当中的异常类引发标准库中内存申请失败的异常 基本的异常处理
异常处理机制:暂缓问题处理,不在当前函数中处理,在他的调用...[2021/12/15]
C++学习之IO流(输入输出流)详解
目录介绍基本输入、输出流freopen字符类的处理 介绍
流: 若干字节数据从一端到另一端我们叫做流
例如:操作文件,从程序到文件,数据的流动的操作称为流操作
流类体系
专门处理输入输出流、字符流、文件流,包含有:
流对象
流运算符 >>? <...[2021/12/15]
将?C++?类型属性暴露给?QML
目录一、数据类型处理和所有权
1.1、暴露属性
1.2、使用通知信号的注意事项
1.3、具有对象类型的属性
1.4、具有对象列表类型的属性
1.5、分组属性
二、暴露方法
三、暴露信号
可以使用 C++ 代码中定义的功能轻松扩展 QML。由于 QML 引擎与 Qt 元对象系统的紧密集成,QObje...[2021/12/15]
利用上下文属性将 C++ 对象嵌入 QML 里
目录一、设置简单的上下文属性二、将对象设置为上下文属性三、上下文属性与C++ 的数据模型示例3.1、字符串列表模型3.2、对象列表模型3.3、QAbstractItemModel QQmlContext 类使将 C++ 数据注入 QML 对象的能力成为可能。此类向 QML 对象的上下文公开数据,以便...[2021/12/15]
C++ OpenCV绘制简易直方图DrawHistImg
目录需求说明具体流程功能函数C++测试代码测试效果 需求说明
在对图像进行处理时,经常会有这类需求:想要观察图像的直方图分布,例如灰度图中0-255区间数值的分布情况,从而可以进行后续的操作,如阈值分割二值化、直方图均衡化等等。本文设计了一个能绘制简易直方图的简单函数DrawHistImg,可以...[2021/12/9]
C++ OpenCV单峰三角阈值法Thresh_Unimodal详解
目录需求说明具体流程功能函数C++测试代码测试效果 需求说明
在对图像进行处理时,经常会有这类需求:想通过阈值对图像进行二值化分割,以提取自己感兴趣的区域,常见的阈值分割方法有常数分割、最大类间方差法、双峰分割、三角法等等,不同的场景应用不同的阈值方法。
今天要讲的方法,适合当图像的直方图具...[2021/12/9]
c++虚函数与虚函数表原理
目录1.什么是虚函数?2.虚函数会影响类的内存
3.了解虚函数表--->通过虚函数表的指针去访问数据
4.虚函数声明
1.什么是虚函数?
用virtual 修饰的成员函数叫虚函数
小知识:?没有虚构造函数??????? 不写虚函数,没有默认的虚函数
普通函...[2021/12/9]
C++继承类成员访问权限修饰符详解C++继承类成员访问权限修饰符详解
目录1. 前言2. 不同修饰下的类成员被访问权限3. 继承时的属性变化4. protected的作用总结
1. 前言
C++提供了三个修饰符来限定类成员的被访问权限,分别是public ,protected, private. 通过限定访问权限,可以达到程序编写者想要解决的安全问题和权限问题。...[2021/12/8]
C/C++?Qt?数据库与TableView实现多组件联动
Qt 数据库组件与TableView组件实现联动,以下案例中实现了,当用户点击并选中TableView组件内的某一行时,我们通过该行中的name字段查询并将查询结果关联到ListView组件内,同时将TableView中选中行的字段分别显示在窗体底部的LineEdit编辑内,该案例具体实现细节如下...[2021/12/8]
C++ decltype 说明符C++ decltype 说明符
目录1.语法
2.关键词decltype 1.语法
decltype ( 实体 )?(1)?(C++11 起)
decltype ( 表达式 )?(2)?(C++11 起)
解释:
1) 如果实参是没有括号的标识表达式或没有括号的类成员访问表达式,那么 decltype 产...[2021/12/8]
C++?函数的介绍
目录一、基础
二、参数
三、返回类型
四、函数重载与解析
五、内联函数
1.constexpr函数
六、函数指针
七、思考
1、我们常常会见到如下代码,是由什么作用?2、可以用别名定义一个函数类型吗? 一、基础
函数:封装了一段代码,可以在一次执行过程中被反复调用,包含函数头和函数体;
...[2021/12/8]
C++?STL容器详解之红黑树部分模拟实现C++?STL容器详解之红黑树部分模拟实现
目录一、红黑树的概念二、红黑树的性质三、红黑树节点的定义四、红黑树结构?五、 红黑树的插入操作六、代码总结 一、红黑树的概念
红黑树(Red Black Tree),是在计算机科学中用到的一种数据结构,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过...[2021/12/8]
C++中的编译与链接
目录一、编译与链接模型
二、编译与链接流程
三、总结
?前言:
C++有个最大的特点,那便是编译型语言,相比于Python这种解释型语言,C++在编译阶段就进行了许多处理,在执行阶段便具有高效性,本篇主要讲解C++中的编译与链接;
一、编译与链接模型
1、一开始的C++是一个简单的...[2021/12/8]
C++??系统IO流介绍
目录1、iostream标准库
2、namespace
3、C和C++输出区别
4、总结
前言:
本次讲解一个小知识点,也是最常见的一个知识点:iostream;不管编写什么程序,必然会使用到IO流交互,从细节上理解简单的IO流;
1、iostream标准库
定义:标准库所提供的I...[2021/12/8]
利用C++?OpenCV?实现从投影图像恢复仿射特性
目录原理实现思路主要代码 原理
我们通过相机拍摄的图片存在各种畸变,其中投影畸变使得原本平行的直线不再平行,就会产生照片中近大远小的效果,要校正这一畸变,书中给了很多方法,这里是其中的一种。
我们可以将投影变换拆分成相似变换、仿射变换和投影变换三部分, 如下图,
其中相似变换和仿射...[2021/11/29]
C++?STL中五个常用算法使用教程及实例讲解
目录前言sort()排序常用遍历算法for_each()常用遍历算法 搬运transform()查找算法find删除操作erase()实例应用 前言
在C++中使用STL算法都要包含一个算法头文件 #include<algorithm>
这样我们才能使用这个STL算法函数
s...[2021/11/29]
浅谈C++中const与constexpr的区别
目录一.const常量与#define比较二.const修饰1.修饰普通变量,必须初始化2.修饰类变量和成员变量3.修饰成员函数4.修饰指针5.修饰引用三.const转换四.顶层const与底层const五.C++11新引入的constexpr 一.const常量与#define比较
defin...[2021/11/29]
c++11 chrono全面解析(最高可达纳秒级别的精度)
目录1.精度:2.时间段:3.时间点:4.时钟:(代表当前系统的时间) chrono是c++ 11中的时间库,提供计时,时钟等功能。
学习chrono,关键是理解里面时间段(Durations)、时间点(Time points)的概念。
1.精度:
时钟节拍(时间精度):
t...[2021/11/29]
c++11多种格式时间转化为字符串的方法实现
1.打印系统当前时间,或者将系统当前时间转化为字符串
#include <iostream>
#include < tream>
#include <iomanip>
#include <chrono>
int main()...[2021/11/29]
C++ VTK实例之高斯随机数的生成C++ VTK实例之高斯随机数的生成
VTK实例高斯随机数的生成
这个例子演示了从一个平均数是0.0和标准偏差是2.2的高斯分布中随机生成3个随机数。先创建两个文件:Gau ianRandomNumber.cpp和CMakeLists.txt。
代码如下:
Gau ianRandomNumber.cxx
#in...[2021/11/24]
C++ 非递归实现二叉树的前中后序遍历C++ 非递归实现二叉树的前中后序遍历
目录二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历 二叉树的前序遍历
在不使用递归的方式遍历二叉树时,我们可以使用一个栈模拟递归的机制。二叉树的前序遍历顺序是:根 → 左子树 → 右子树,我们可以先将二叉树的左路结点入栈,在入栈的同时便对其进行访问,此时就相当于完成了根和左子树的访问,当...[2021/11/23]
手把手带你学习C++的数据类型
目录数据类型01 整型:02 sizeof关键字03 实型(浮点型)04 字符型05 转义字符06 字符串型07 布尔型08 数据的输入总结
数据类型
C++规定在创建一个变量或者常量时,必须要指定相应的数据类型,否则无法给变量分配内存空间。
01 整型:
...[2021/11/23]
手把手带你学习C++的运算符
目录运算符01 算术运算符02 赋值运算符03 比较运算符04 逻辑运算符总结
运算符
作用:用于执行代码的运算
运算符类型
作用
...[2021/11/23]
C++利用链表实现图书信息管理系统
C++利用链表实现一个简单的图书信息管理系统,供大家参考,具体内容如下
(1)图书信息包括ISBN号、书名、作者名、价格和数量等;
(2)系统的主要功能包括:图书信息的创建、输出图书信息、查询图书信息、增加图书信息、删除图书信息。
#include <stdio.h>...[2021/11/22]
C++轻量级界面开发框架ImGUI介绍小结
目录ImGUI简介ImGUI的界面实现技术选型如何使用ImGUI 如果从事过C++ Windows客户端开发,大家对MFC、Qt、DuiLib等各种DirectUI应该有了解,本篇给大家介绍一个超级轻量级的C++开源跨平台图形界面框架ImGUI.
ImGUI简介
ImGUI主要用于游戏行业,...[2021/11/22]
C++数据结构之list详解
目录前言一、list的节点二、list的迭代器2.1 const 迭代器2.2 修改方法二、美中不足三、迭代器的分类3.x std::find的一个报错总结 前言
list相较于vector来说会显得复杂,它的好处是在任意位置插入,删除都是一个O(1)的时间复杂度。
一、list的节点
...[2021/11/22]
C++指针与引用的异同
目录1、引用与指针的区别1.1 相同点1.2 区别 1、引用与指针的区别
指针和引用的原理非常的相似,所以很多时候尤其是面试的时候经常会拿来比较。
本文来梳理一下引用和指针的一些异同。
1.1 相同点
两者都是关于地址的概念。
指针本身是一个变量,它存储的值是一块内存地址,而引用...[2021/11/16]
C++三元表达式详情
if-else语句非常常用,但在进行一些简单逻辑判断的时候,会显得有些不太简洁。特别是在初始化的时候,比如我们有一个变量,某种情况下赋值成a,另外的情况下赋值成b。
使用if-else语句写出来就是:
int cur;
if (condition) {
cur = a;...[2021/11/16]
C++ continue和break语句
目录1、break和continue1.1 break1.2 continue 文章转自 公众号:Coder梁(ID:Coder_LT)
1、break和continue
break和continue都是循环体当中经常使用的语句,并且也不只是C++在其他语言当中同样存在。break和cont...[2021/11/16]
C++ const和指针详情
目录1、指针和const1.1 指向常量的指针1.2 const指针1.3 指针和内容都不可变 1、指针和const
我们知道const关键字修饰的是不可变量,将它和指针一起使用,会有很多微妙的地方。
关于使用const来修饰指针,有两种不同的方式。第一种是让指针指向一个常量对象,这样可以防...[2021/11/16]
C++内联函数详情
内联函数是C++当中为了提高程序运行效率的设计,老实讲我没有在其他语言当中看到类似的设计。它和常规函数之间的主要区别不在于编写的方式,而是在于C++编译器会将内联函数组合到程序当中执行。
要解释这个过程会稍稍有些复杂,我们需要从编译的过程说起。对于编译型语言而言,编译器做的事情是把人类写...[2021/11/16]
C++ 函数指针详细总结
目录1、函数指针1.1 获取函数地址1.2 声明函数指针1.3 函数指针传参1.4 调用函数2、函数指针进阶 1、函数指针
函数指针顾名思义,就是指向函数的指针。
和数据类似,C++当中函数也有地址,函数的地址是存储函数机器语言代码的内存地址。我们可以将另外一个函数的地址作为参数传入函数,从...[2021/11/16]
C++引用的使用与const修饰符C++引用的使用与const修饰符
目录1、引用2、函数引用传递3、引用与const4、const修饰符的优点 1、引用
引用是给已经定义的变量一个别名,可以简单理解成同一个变量的昵称。既然是昵称或者是别名,显然它和原本的变量名有着同样的效力。所以我们对别名进行修改,原本的变量值也一样会发生变化。
我们通过符号&来表明...[2021/11/16]
C++11中列表初始化机制的概念与实例详解
目录概述
实现机制详解
POD类型的列表初始化
含有构造函数的类的列表初始化(C++11)
列表初始化用于函数返回值
引入std::initializer_list
代码验证
应用
列表初始化防止类型收窄
总结
概述
定义:列表初始化是C++11引入的新标准,目的是统一初始化方式
C+...[2021/11/9]
C++实现bmp格式图像读写
bmp格式图像有一个特点就是这类数据被分为四个部分:
1.位图文件头(Bitmap File Header) ,大小:14字节
主要包括位图文件大小和位图文件类型信息
2.位图信息头(Bitmap Info Header),大小:40字节
主要包括:位图的宽度和高度,像素为单位、每...[2021/10/25]
c++对象内存布局示例详解
目录前言继承对象的内存布局
具有多重继承和虚拟功能的对象的内存布局
总结
前言
了解你所使用的编程语言究竟是如何实现的,对于C++程序员可能特别有意义。首先,它可以去除我们对于所使用语言的神秘感,使我们不至于对于编译器干的活感到完全不可思议;尤其重要的是,它使我们在Debug和使用语言高级特性...[2021/10/25]
C++静态链接与动态链接详解
目录一、GCC工作流程二、静态链接与动态链接1、静态链接2、动态链接总结 一、GCC工作流程
预处理:把#头文件展开,进行宏替换,去掉注释(生成.i文件)
编译:把预处理后的文件生成汇编文件(.s文件),主要是检查语法、语义问题
汇编:把汇编文件生成目标文件(.o文件)
链接:将函数...[2021/10/11]
C++实现俄罗斯方块小游戏
本文实例为大家分享了C++实现俄罗斯方块小游戏的具体代码,供大家参考,具体内容如下
操作说明:
D F:左右旋转
J L:左右移动
E(一堆键都行): 加快下落速度
空格: 开始游戏 与 一落到底
上代码!
#include <cstdio>
...[2021/10/11]
C++之内存泄漏排查详解
目录一 、经验排查二 、使用Visual Leak Detector for Visual C++2.1 Visual Leak Detector for Visual C++简介2.2 Visual Leak Detector源码获取编译2.2.1 源码获取,相关git地址2.2.2 发布版本获取...[2021/10/11]
C++类型转换运算符详解C++类型转换运算符详解
目录老式显式类型转换c++的显示类型转换为什么要有新的类型转换具体应该使用哪种转换static_cast运算符dynamic_cast运算符const_cast运算符reinterpret_cast运算符老式显式类型转换实际的转换方式总结 老式显式类型转换
(类型)表达式 c风格的强制类型转...[2021/10/8]
如何利用Opencv实现图像的加密解密如何利用Opencv实现图像的加密解密
目录1、基础:基于异或操作实现图像加密解密Opencv-python代码实现效果展示:2、进阶:基于混沌序列构成异或模板实现图像加密解密结果展示:总结 1、基础:基于异或操作实现图像加密解密
一般情况下,图像的加密和解密过程是通过按位异或运算实现的。将原始图像与密钥图像进行按位异或,可以实现加密...[2021/10/8]
关于C++ TpeScript系列的泛型
目录一、模版二、泛型三、泛型递归四、默认泛型参数五、泛型重载 前言:
我在面试的时候,通常喜欢问候选人一些莫名其妙的问题。比如这样的问题,假如你是某个库的作者,你如何实现某个功能。这类问题一般没有正确的答案,主要意图是考察一下候选人对这个库有没有更深入的理解,次要意图是觉得这样挺好玩。玩归玩,但...[2021/10/8]
C++ vector数组用法及解析C++ vector数组用法及解析
目录一、什么是vector数组
二、vector的基本操作vector数组的初始化向vector中插入元素删除元素遍历数组利用vector创建动态二维数组 一、什么是vector数组
vector是向量类型
vector数组是可以存放任意数据类型的动态数组
...[2021/10/8]
C语言编程C++自定义个性化类型
目录自定义类型结构体声明一个结构体类型特殊声明结构体自引用结构体变量的定义和初始化结构体内存对齐结构体传参位段枚举联合(共用体)联合类型的定义联合类型的声明联合的特点判断当前机器的大小端存储【】 自定义类型
结构体
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量
...[2021/9/28]
C++实现支持泛型的LFU详解C++实现支持泛型的LFU详解
首先定义LFU存储数据节点ListNode的结构, 此结构支持键K和值V的模板,为了在有序元素中实现比较(严格小于),这里需要重载小于号,如果此数据的使用频次最少,则小于结果为true,如果频次相等,轮次早的数据最小。
template<typename K, typename ...[2021/9/28]
C语言编程C++柔性数组结构示例讲解C语言编程C++柔性数组结构示例讲解
目录绕指柔—柔性数组柔性数组的特点:第一个好处是:方便内存释放第二个好处是:这样有利于访问速度总结 绕指柔—柔性数组
也许你从来没有听说过柔性数组(flexible array)这个概念,但是它确实是存在的。 C99 中,结构体中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员。
柔...[2021/9/28]
c++primer类详解
目录1. 定义抽象数据类型1.1 设计Sales_data类1.2 定义类相关的非成员函数1.3构造函数1.4 拷贝、赋值和析构2 访问控制和封装2.1 友元2.2 类的其他特性2.2.1 类成员再探2.2.2 返回*this的成员函数2.2.3 类类型2.2.4 友元再探2.4 类的作用域2.4....[2021/9/27]