-
高斯函数在图像处理中的应用
高斯模糊是一种常见图像模糊算法。本文介绍其算法原理和在图像处理中的操作细节。
-
数据库使用的数据模型
根据数据库所使用的数据模型来划分,数据库可以分为层次数据库、网状数据库、关系数据库。
它们分别对应数据库的三种数据模型:层次模型,网状模型,关系模型。
目前最常用的也就是关系型数据库。 -
面向对象设计中的五大原则
最近在看软考资料,正好遇到了一个与面向对象设计有关的题目,把五大原则拿出来好好复习一下。将五大原则分别是单一职责原则、开闭原则、里式替换换则、接口隔离原则、依赖倒转原则,将它们的英文首字母取出来就能组成单词
SOLID
,这些原则的主要宗旨是使软件维护和软件拓展变得更加容易。 -
在C++中使用有符号数作为容器下标
在C++20中引入了
std::span
特性,针对容器下标和容器大小该使用有符号数signed
还是无符号数unsigned
,大家开始讨论。综合来看,在旧标准的设计中使用无符号数作为容器下标是有历史原因的;但是在后来的使用中也发现了许多弊端。最终,在C++20标准下
std::span
仍然使用了无符号数作为大小和下标类型。但是讨论的过程很有意思,也让我在后续的开发中思考有符号数和无符号数的使用。 -
记录一次TCP异常分析
最近在排查一个TCP异常现象,有很多收获,加深了我对TCP的理解,在这里记录一下。
-
将界面窗口置顶显示
最近需要实现一个功能,在启动第二个程序实例时将主界面窗口置顶显示。界面程序是基于Qt开发的,在Windows操作系统上实现窗口置顶需要一些特殊的处理。
-
Qt连接匿名函数的踩坑记录
今天在调试代码时遇到了一个有趣的问题,值得仔细思考。
-
检查C字符串为空
在C语言中如何检测字符串为空字符串,最近看到twitter上有对此问题讨论,让我学习到了很多新的知识点。
-
删去不需要的windows右键菜单
一些软件会向 windows 右键菜单中增加功能条目,当我们不需要这些功能时可以删掉他们。
-
结构体字节对齐的陷阱
pragma pack
的功能是设定结构体内成员变量的字节对齐方式。它在使用时有一个易错点,而且出错后排查起来还非常不容易。 -
如何检测TCP连接的异常断开
在以往的开发中,我会通过
recv()
接口的返回值来判断连接是否断开。但有时候我发现TCP连接已经无法正常收发数据了recv()
的返回值仍然不是0。 -
由new创建的指针不需要检查nullptr
我们会检查空指针来判断指针是否有效。一直以来,在申请动态内存后,我都会习惯性地检查得到的指针是否为空,但是查阅了一些资料后发现这个操作是多余的。