谈谈C++的lambda表达式

Lambda 表达式也是 C++ 11 之后引入的一个优秀的特性,且在 C++ 14 后得到了扩展,实际上 Lambda 表达式并没有扩展语言的表达能力,能使用 Lambda 表达式做到的,在 C++ 中都可以使用其他手段做到(如可调用对象)。但是 Lambda 表达式却给编程带来了便利,以及提升了程序的可读性。
阅读全文

Linux常用网络调试工具

在网络程序开发过程中,我们经常需要查看主机上的网络套接字连接情况,或者需要抓取网卡上经过的网络包。相比于在 Windows 系统上,这些常用的网络调试功能在 Linux 机器上能够通过一些很简单的工具实现,这篇博客对常用的一些工具的常用功能进行介绍。
阅读全文

Modern C++ 的一些惯用手法

标题说是 Modern C++ 的惯用手法,其实就是编写 C++ 代码时常用的一些手法,在 C++ 11 和 14 标准之后有了一些细微的需要注意的地方。主要是介绍 RAII 和 pImpl 两种典型手法。
阅读全文

浅谈程序中的内存对齐问题

最近在 Arm 架构CPU 上开发程序遇到了内存对齐错误的问题,由于之前都是在 x86 架构的 CPU 上进行开发,CPU 默认对非对齐内存访问操作进行了处理,用户感知不到。查阅部分资料之后,本篇博客浅谈一下内存对齐问题。
阅读全文

深度学习系列(七):CenterNet目标检测算法

CenterNet 是经典的无锚框目标检测算法之一,算法在2019年被提出,其在速度和精度上都能有不错的表现。这篇博客主要介绍一下 CenterNet 算法的原理,此外还会结合网上的实现来介绍一下大致的算法实现。
阅读全文

深度学习系列(六):YOLOv3算法理论

YOLO("You Only Look Once) 是当前最成功的单阶段目标检测算法之一,相较于之前介绍的 Faster RCNN 目标检测算法,YOLO 能在保证检测准确率的情况下,以更快的推理速度进行目标检测。YOLO算法版本也从 YOLOv1 至 YOLOv7 不断的更新,但算法的基本原理基本一致,本篇博客介绍 YOLOv3 的基本原理。
阅读全文

深度学习系列(五):Faster RCNN算法理论

深度学习系列从本篇文章开始,将会陆续的介绍计算机视觉领域相关的一些算法,前面使用图像分类来演示深度神经网络的作用。但实际上,对图像进行分类运用的并不是很广泛,而目标检测则是计算机视觉领域中很重要的一个问题,本文主要介绍经典的Faster RCNN算法的理论部分。
阅读全文

深度学习系列(四):典型卷积神经网络

本文介绍深度学习中常用的卷积神经网络,上一篇文章介绍了LeNet的网络结构,介绍了其中的卷积操作、池化操作等基本部件。随着硬件算力的不断发展,深度更深、特征提取能力更强的网络不断被提出。本篇文章就介绍这些结构更加复杂也是目前常用的现代卷积神经网络结构。
阅读全文

算法(四)

本文整理了部分关于图论的算法,包括二分图、Dijkstra算法求单源最短路径,以及做有向图的拓扑排序。每个算法都通过 leetcode 中的算法题举例。
阅读全文

设计模式(三):行为型模式

本文介绍设计模式中的行为型模式,行为型模式关注类和对象之间的职责划分,研究对象之间的相互作用。本文记录行为型模式中的一部分,另一些概念比较简单就不用代码举例了。
阅读全文