• 高斯函数在图像处理中的应用

    高斯模糊是一种常见图像模糊算法。本文介绍其算法原理和在图像处理中的操作细节。

  • 数据库使用的数据模型

    根据数据库所使用的数据模型来划分,数据库可以分为层次数据库、网状数据库、关系数据库。
    它们分别对应数据库的三种数据模型:层次模型,网状模型,关系模型。
    目前最常用的也就是关系型数据库。

  • 面向对象设计中的五大原则

    最近在看软考资料,正好遇到了一个与面向对象设计有关的题目,把五大原则拿出来好好复习一下。将五大原则分别是单一职责原则、开闭原则、里式替换换则、接口隔离原则、依赖倒转原则,将它们的英文首字母取出来就能组成单词 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

    我们会检查空指针来判断指针是否有效。一直以来,在申请动态内存后,我都会习惯性地检查得到的指针是否为空,但是查阅了一些资料后发现这个操作是多余的。