C++snprintf的使用
摘要:一、定义 众所周知,sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf。自从snprintf代替了sprintf,相信大家对snprintf的使用都不会少,函数定义如下: int snprintf(char*str, size_t size,constch
阅读全文
posted @
2022-07-19 15:21
一杯清酒邀明月
阅读(854)
推荐(0) 编辑
C++ 位运算跟乘除法的关系
摘要:一:乘法12 * 2 = 12 << 112 * 4 = 12 << 212 * 8 = 12 << 312 * 16 = 12 << 412 * 32 = 12 << 512 * 64 = 12 << 612 * 128 = 12 << 712 * 256 = 12 << 8二:除法12 / 2
阅读全文
posted @
2022-07-19 15:14
一杯清酒邀明月
阅读(175)
推荐(0) 编辑
提高C/C++运行效率以及避免出现Bug的20种方法
摘要:这是在工作和学习中总结的有关于提高C/C++运行效率以及避免出现Bug的几种常见的实用方法,当然还有许多更有效的方式有待进一步的探索。 1.若可以替代的话,尽可能使用前缀操作符代替后缀操作符,如利用++i来代替i++,因为后缀操作符会产生一个临时变量,并且涉及到复杂的拷贝复制等。 2.对于乘法操作尽
阅读全文
posted @
2022-07-19 15:11
一杯清酒邀明月
阅读(324)
推荐(0) 编辑
深度解析前缀操作符与后缀操作符
摘要:前缀操作符(如++i)与后缀操作符(如i++),我们都知道前者是先将i进行加1操作然后将值返回,而后者则是先将i的值直接返回然后再把i的值进行加1操作,也就是我们常说的“前缀为先加再用,后缀为先用再加”。 然而对于某些场合它们的作用是相同的,类如在for循环中for(int i = 0; i <10
阅读全文
posted @
2022-07-19 15:08
一杯清酒邀明月
阅读(138)
推荐(0) 编辑
QueryPerformanceFrequency使用方法--Windows高精度定时计数
摘要:在多核心或多处理器的计算机上。特别是在支持CPU频率动态调整的计算机上,windows系统下的QueryPerformanceFrequency()获取HPET(假设存在)的频率,而QueryPerformanceCounter()获取HPET(假设存在高精度事件定时器(High Precision
阅读全文
posted @
2022-07-19 13:51
一杯清酒邀明月
阅读(1307)
推荐(0) 编辑
时间函数QueryPerformanceFrequency
摘要:介绍 我们在衡量一个函数的运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,都会用到时间函数。编译器和操作系统为我们提供了很多时间函数,这些时间函数的精度也是各不相同。所以,如果我们想得到准确的结果,必须使用合适的时间函数。 Sleep 原理:Sleep函
阅读全文
posted @
2022-07-19 13:48
一杯清酒邀明月
阅读(320)
推荐(0) 编辑
C++ 重载(overload)与重写(override)
摘要:C++的重载(overload)与重写(override) 成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 重写是指派生类函数重写基类函数,是C++的多态的表现,特征是:(1)不同的范围(分别位于派生类与基类);(2)
阅读全文
posted @
2022-04-01 16:20
一杯清酒邀明月
阅读(870)
推荐(0) 编辑
最小二乘法拟合圆公式推导及VC实现
摘要:最小二乘法(least squares analysis)是一种 数学 优化 技术,它通过 最小化 误差 的平方和找到一组数据的最佳 函数 匹配。 最小二乘法是用最简的方法求得一些绝对不可知的真值,而令误差平方之和为最小。 最小二乘法通常用于 曲线拟合 (least squares fitting)
阅读全文
posted @
2022-02-25 15:27
一杯清酒邀明月
阅读(794)
推荐(0) 编辑
C++ const 关键字小结
摘要:const 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。 C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明
阅读全文
posted @
2022-02-22 13:39
一杯清酒邀明月
阅读(85)
推荐(0) 编辑
C++ MultiByteToWideChar和WideCharToMultiByte用法详解
摘要:今天写ini文件的时候发现的问题: 1 TCHAR temp[128]; 2 //strcpy_s(temp, request.newVersion); 3 MultiByteToWideChar(CP_ACP, 0, request.newVersion, -1, temp, 100); 4 Wr
阅读全文
posted @
2022-02-21 15:56
一杯清酒邀明月
阅读(1011)
推荐(0) 编辑
C++ wchar_t介绍以及和string类型的转换
摘要:首先介绍下wchar_t类型 一、wchar_t类型的由来 我们知道char类型变量可以存储一个字节的字符,它用来保存英文字符和标点符号是可以的,但是对于汉字、韩文以及日文这样的字符却不可以,因为汉字、韩文以及日文每一个文字都占据两个字节,为了解决这个问题,c++提出了wchar_t类型,称之为双字
阅读全文
posted @
2022-02-21 15:30
一杯清酒邀明月
阅读(1004)
推荐(0) 编辑
C++ wchar_t*和string相互转换
摘要:在处理中文时,一个中文通常占用2个字节,而char*和string字符串中的字符都是一个字节的,为了能够有效处理中文,引入了wchar_t*型变量,当需要处理中文时,可以首先将string转换成char*,然后将char*转换成wchar_t*即可。 在window环境中,可以利用 1 MultiB
阅读全文
posted @
2022-02-21 15:19
一杯清酒邀明月
阅读(6288)
推荐(0) 编辑
C++ 快速傅里叶变换
摘要:1 快速傅立换变换的简介1.1 傅里叶变换的不足 对于一个长度为 M MM 的信号序列来讲,如果我们要进行傅里叶变换,根据公式: 1.2 快速傅里叶变换 4点的FFT快速算法信号流图如下所示: 我们可以从信号流图的左侧观察到原序列发生了变换,即变化后的序列索引对应的元素与变化前不一致,要想实现此变换
阅读全文
posted @
2022-02-21 14:18
一杯清酒邀明月
阅读(2352)
推荐(0) 编辑
C++ 傅里叶变换 推导
摘要:傅里叶变换 在自己对傅里叶变换的不断学习中,逐渐对其有了一些新的理解,新的想法。故在本文中将首先简要介绍一下傅里叶变换的作用,之后对傅里叶变换过程给出自己角度的理解。 1 傅里叶变换的作用 所谓“横看成岭侧成峰,远近高低各不同”,对于一个事物,我们可能会从各个不同的角度观察,之后得到不同的结果,但其
阅读全文
posted @
2022-02-21 14:13
一杯清酒邀明月
阅读(285)
推荐(0) 编辑
C++ 离散傅里叶逆变换
摘要:一、序言: 该教程承接上文的离散傅里叶变换,用于进行离散傅里叶逆变换。 二、设计目标 对复数数组进行离散傅里叶逆变换,并生成可供使用的图像类。 三、详细步骤 输入:经傅里叶变换后产生的复数数组 输出:MyImage图像 定义: static MyImage* Idft2(ComplexNumber
阅读全文
posted @
2022-02-21 14:02
一杯清酒邀明月
阅读(252)
推荐(0) 编辑
C++ 离散傅里叶变换
摘要:一、序言: 该教程基于之前的图像处理类MYCV,是对其的补充。 二、设计目标 对图像进行简单的离散傅里叶变换,并输出生成的频谱图。 三、需要提前掌握的知识 二维傅里叶变换公式: 四、详细步骤 1.首先定义一个方法,该方法对输入的图像进行傅里叶变换 输入:MyImage 源图像 输出:ComplexN
阅读全文
posted @
2022-02-21 13:59
一杯清酒邀明月
阅读(396)
推荐(0) 编辑
C++ 自定义图像处理类
摘要:一、序言:在图像处理的学习过程中,我们会经常使用到C++中比较著名的一些图像处理库,如OpenCV、OpenGL等。今天,我们就来实现自己的图像处理类MyCV。 二、补充:改教材中的MyCV类是基于前面教程中的MyImage类,构建MyCV时需要关联相应文件 三、今天我们先实现一个简单的图像灰度化方
阅读全文
posted @
2022-02-21 13:48
一杯清酒邀明月
阅读(421)
推荐(0) 编辑
C++ 自定义图像类
摘要:一、序言:在图像处理的学习过程中,我们会经常使用到C++中比较著名的一些图像处理库中的图像类或矩阵类,如OpenCV中的Mat等。今天,我们就来实现自己的图像类。 二、需求: 1.一个完整的图像处理类通常包括以下属性: (1)Width 宽 (2)Height 高 (3)nBitCount 一个像素
阅读全文
posted @
2022-02-21 13:46
一杯清酒邀明月
阅读(730)
推荐(0) 编辑
C++ complex复数类用法详解
摘要:复数是 a+bi 形式的数,其中 a 和 b 是真数,在 C++ 代码中是浮点值,i 是根号 -1。a 被称作复数的实数部分,b 乘以 i 被称作虚数部分。使用复数的程序一般都很专业,例如,复数可以用于电气和电磁理论、数字信号处理,当然也可以用于数学。复数可以用来生成非常复杂的 Mandelbrot
阅读全文
posted @
2022-02-21 13:40
一杯清酒邀明月
阅读(3093)
推荐(0) 编辑
C++ 复数的实现
摘要:在数字图像处理领域,复数这一类型会被经常使用到。但是在C++和Qt中都没有可以使用的复数类。为了今后的方便,我们可以自己定义一个C++复数类,以便将来使用。 一、复数的属性 复数包含实数部分和虚数部分,如果直接使用 a + ib 的模式会使得后面的一系列操作变得较为复杂。这里我们直接给复数定义两个成
阅读全文
posted @
2022-02-21 13:35
一杯清酒邀明月
阅读(753)
推荐(0) 编辑