自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 【C++】__declspec含义

`__declspec(dllexport)` 是 Microsoft Visual C++ 编译器提供的一个扩展,用于指示一个函数或变量在 DLL(动态链接库)中是**可导出的**。它告诉编译器将函数或变量放入 DLL 的导出表中,以便其他程序(包括其他编程语言和应用程序)可以使用它们。

2024-01-15 16:41:43 749 1

原创 【C++】static_cast和dynamic_cast使用详解

`static_cast` 并不执行运行时类型检查。因此,如果你尝试执行一种不安全的转换,例如将基类指针转换为不相关的派生类指针,编译器可能不会发出警告或错误,但在运行时可能会导致未定义的行为。在这种情况下,你可能需要考虑使用 `dynamic_cast`,它执行运行时类型检查,但仅在涉及多态的情况下才适用。

2024-01-15 15:00:20 1224 1

原创 【C++】单一职责模式

在面向对象设计中,单一职责原则(Single Responsibility Principle,简称 SRP)是 SOLID 原则之一,提出了一个类应该只有一个修改的理念。具体来说,一个类应该只有一个引起它变化的原因,即一个类应该只有一个责任。如果一个类承担的责任过多,那么对这个类的修改就会影响到所有依赖它的地方。

2023-12-14 16:47:25 472 1

原创 【C++】策略模式

策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,将每个算法封装到不同的类中,并且使它们可以相互替换。策略模式允许客户端代码选择算法的实现,而不是将算法的选择硬编码在客户端代码中。

2023-12-14 16:04:30 679 1

原创 【linux】tar:时间戳是未来的解决办法

使用tar解压文件时提示如下信息:tar :testFile:时间戳 2023-11-23 21:36:57 是未来的 24157.388023964 秒之后

2023-11-23 15:26:38 399 1

原创 【PB】protobuf安装使用详解

PB 是 Protocol Buffers 的简称。Protocol Buffers 是一种由 Google 开发的数据序列化格式,用于结构化数据的存储、交换和通信。它是一种轻量、高效、可扩展的数据交换格式。PB 通过使用预定义的消息类型和二进制编码来表示数据。你可以使用 Protocol Buffers 的定义语言(Protocol Buffers IDL)来定义数据结构和消息类型,然后使用相应的编译器将定义文件编译成特定编程语言的类或结构体,从而实现在不同编程语言中使用 Protocol Buffe

2023-10-24 10:55:45 611

原创 【C++】TCP通信服务端与客户端代码实现及详解

本文分享了TCP/IP的客户端及服务端的C++代码实现,并进行了详细的解析。其中服务端使用Winsock库实现了简单的TCP服务器,它监听指定端口并与客户端进行通信。代码仍然有改进的空间,例如可以处理更多的错误情况,添加更多的日志输出,以及更完善的输入验证等。

2023-10-19 13:41:43 4242 6

原创 【C++11/C++20】特性介绍

C++11 带来了许多强大的功能,提高了代码的可读性和性能,并使C++成为一个更现代化的编程语言。自那时以来,C++的标准还经历了多个版本的更新,每个版本都引入了新的特性和改进。C++20 极大地丰富了C++语言,提供了更多的现代化编程工具和性能优化,使得C++成为一个更加强大和灵活的编程语言。

2023-10-02 20:27:42 331

原创 【C++】单例模式

单例模式是常见的设计模式之一,本质是:只提供唯一的类的实例,其具有全局变量的特点,在任意位置都可以使用该类提供的接口访问到其唯一的实例对象。

2023-09-22 10:07:20 113 1

原创 【C++】工厂模式(一)简单工厂模式

简单工厂模式是一种实例化对象的方式,其专门定义一个类用于创建其他的类,被创建的实例具有同一个基类,使用时只需要输入相应枚举即可创建所需的对象。在程序中,若需要创建的对象较多,导致new对象时复杂混乱,此时使用简单工厂模式,可以将对象的创建与操作分为两部分,方便后期的维护与管理。

2023-09-05 15:34:57 145 1

原创 【Linux】常用指令汇总

- 以下示例涵盖了常见的Linux指令用法,可以根据具体需求进行调整和扩展。- 在终端中输入`man`命令查看每个指令的详细帮助文档,以了解更多选项和用法。

2023-08-12 16:23:42 154

原创 【C++】读取txt文件并查询指定字段

按字符读取或按行读取txt文件,然后使用string::find()函数进行查找指定字段,若查到则返回0,未查到则返回-1。

2023-07-07 13:56:51 1169 3

原创 【C++】根据进程名获取进程ID

Windows下根据进程名称查找进程,若查到则返回PID,若未查到则返回-2;

2023-07-06 15:50:54 2273 2

原创 【C++】获取文件夹下所有文件名并重命名

1. `GetAllFileName()`获取指定路径下所有文件的名称 2. `ReplaceFileName()`根据指定字段的替换,重命名所有符合条件的文件名

2023-06-30 17:09:34 2479 1

原创 【LeetCode】算法:两数之和(twoSum)解法分析

题目 【两数之和】:给定一个整数数组`nums`和一个整数目标值`target`,请你在该数组中找出和为目标值`target`的那两个整数,并返回他们的下标。解法:使用哈希表来记录每个数字及其对应的下标。在遍历数组时,对于每个数字,计算出与目标值的差值,然后在哈希表中查找该差值是否已经存在。如果存在,说明找到了两个数的组合,将其下标存入结果数组。如果遍历结束后仍未找到满足条件的两个数,则返回一个空的结果数组。

2023-06-27 22:30:33 1831 6

原创 【C++】多线程(thread)使用详解

多线程(multithreading),是指在软件或者硬件上实现多个线程并发执行的技术。具有多核CPU的支持的计算机能够真正在同一时间执行多个程序片段,进而提升程序的处理性能。在一个程序中,这些独立运行的程序片段被称为“线程”(Thread),利用其编程的概念就叫作“多线程处理”。

2023-06-25 20:16:15 12754 2

原创 【C++STL】随机排序(random_shuffle)的使用

random_shuffle算法:洗牌,随机调整指定范围内元素的次序。对于`vector`(连续型可任意访问的容器)、`string`以及数组都可以使用`random_shuffle`算法。但对于`set`、`map`(自身具有排序功能)的容器或者非连续性容器则无法使用。

2023-06-20 17:05:05 898 1

原创 【C++】链表(list)的使用以及与vector的区别

在 C++ 中,`std::list` 是标准库提供的一个容器类,用于将数据进行链式存储。**链表**(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的。

2023-06-14 20:02:50 3059

原创 【C++】指针常量与常量指针的含义与区别

分别介绍C++中指针常量与常量指针的含义以及两者的区别,分享了一种简单快速的区分方法,避免大家混淆两者概念。

2023-06-10 14:00:50 126

原创 【C++11】基于范围的for循环使用说明

C++11 引入了基于范围的 `for` 循环(Range-based for loop),它是一种方便遍历容器或其他可迭代对象的**语法糖**。

2023-06-07 10:30:39 446

原创 【C++】语法糖(Syntactic Sugar)的概念与常见应用

语法糖(Syntactic Sugar),也译为糖衣语法,是一种编程语言的设计概念,指的是一种语法结构或编码风格,它在语法上提供了更简洁、更易读的方式来表达某个特定的操作或概念,但在底层实现上仍使用了相对复杂的语法规则或操作。

2023-06-05 21:19:01 866

原创 【C++】关联式容器(map与multimap)的使用

C++ 中,`std::map`和`multimap`都属于**关联式容器**,且都包含在头文件`#include `中,其底层结构都是用**二叉树**实现的。- `map`中所有元素都是`pair`,`pair`中第一个元素为**键值**(`key`),起索引的作用;第二个元素为**实值**(`value`),即映射值- 该类容器中元素在插入时都会根据元素的**键值**(`key`)自动排序

2023-06-04 12:08:32 459 1

原创 【C++STL】快速排序算法(sort)的原理与使用

`std::sort` 是 C++ 标准库中提供的排序算法,它使用的是一种经典的排序算法——**快速排序**(Quicksort)或者是其变种。快速排序是一种基于比较的排序算法,通过不断地选择一个基准值(pivot),将待排序序列分割为两个子序列,其中一个子序列的所有元素小于等于基准值,另一个子序列的所有元素大于基准值。然后递归地对两个子序列进行排序,最终得到有序序列。

2023-06-02 17:59:26 10445

原创 【C++STL】遍历算法(for_each)的原理与使用

`for_each()`遍历算法非常灵活,允许以不同的方式访问、处理、修改每一个元素。因此,`for_each()`既属于质变算法,也属于非质变算法。

2023-06-01 17:13:05 1986

原创 【C++】集合(set与multiset)的使用及set自定义类型排序

C++ 中,`std::set`和`multiset`都属于关联式容器,且都包含在头文件`#include `中,其底层结构都是用二叉树实现的,该类容器中元素在插入时都会被自动排序。

2023-05-31 16:35:53 1774

原创 【C++】队列(queue)的使用

`std::queue` 是一个简单、高效的队列容器,适用于需要按照先进先出顺序处理元素的场景。它在插入和删除操作上具有良好的性能,且无需手动管理内存。然而,由于功能受限,如果需要在任意位置插入或删除元素,或需要遍历队列中的元素,就需要选择其他更适合的容器。

2023-05-27 18:09:35 9017 1

原创 【C++】栈(stack)的使用及push与emplace异同点

C++ 中,`std::stack` 容器是一种*先进后出*(First In Last Out, FILO)的数据结构,且只有一个出口。详细介绍了C++中stack的使用方法,并分析了push与emplace的异同点。

2023-05-24 16:44:53 2262 1

原创 【C++】动态数组(vector)的使用

在 C++ 中,`std::vector` 是标准库提供的一个容器类,用于存储动态大小的元素序列(即"动态数组")。它提供了一系列成员函数和操作符,使得元素的访问、插入、删除等操作变得方便和高效。

2023-05-19 14:58:36 4377 1

原创 【C++】字符串(string)的使用

C++ 中,`std::string` 是用于处理字符串的标准库类。它提供了一系列成员函数和操作符,使得字符串的操作更加方便和灵活。

2023-05-18 21:30:16 2450 2

原创 【C++】#ifndef #endif含义与使用说明

`#ifndef` 和 `#endif` 是 C++ 预处理器指令,通常用来避免头文件的重复包含。

2023-05-05 15:28:17 1742 3

原创 【C++】内联函数(inline)与宏定义(#define)使用说明及区别

详细分析C++中内联函数(inline)与宏定义(#define)使用方法和注意事项以及两者的异同点。

2023-05-05 13:10:51 3279 3

TLD(Tracking-Learning-Detection)目标跟踪算法的C++实现

TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生Zdenek Kalal在其攻读博士学位期间提出的一种新的单目标长时间跟踪(long term tracking)算法。该算法与传统跟踪算法的显著区别在于将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题。同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征点”和检测模块的目标模型及相关参数,从而使得跟踪效果更加稳定、可靠。

2023-06-08

计算机视觉:目标检测与跟踪-商城行人图像数据集

计算机视觉:目标检测与跟踪——商城行人图像数据集(共2359帧图像),仅限训练模型、算法测试使用,非商用。

2023-05-30

计算机视觉:目标检测与跟踪-NBA篮球比赛图像数据集

计算机视觉:目标检测与跟踪——NBA篮球比赛图像数据集(共725帧图像),仅限训练模型、算法测试使用,非商用。

2023-05-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除