自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windows平台上制作qt开发的程序安装包

在 Windows 平台上为用 Qt 开发的程序制作安装包,你可以使用 Qt 自带的工具。该工具允许你创建自定义安装程序,方便部署 Qt 应用程序。

2024-10-24 10:14:48 359 1

原创 C/C++调试工具GDB简单介绍

调试 (Debugging) 是软件开发过程中不可或缺的步骤之一,GDB(GNU Debugger)是C++开发中一个非常强大的调试工具。使用GDB可以帮助你找到并解决代码中的问题。下面是一些关于如何使用GDB进行调试的基础信息和常见命令。

2024-09-13 16:55:03 575

原创 基本数据结构:“树”的简单介绍

所有层(除最后一层外)都是满的:即每层包含的结点数都是最大可能的。最后一层的结点尽量靠左排列:即最后一层上的结点都是从左到右填充的,没有空隙。完全二叉树因其紧凑的结构和优良的性质,在实际应用中广泛存在。它的层次性表示使得在某些情况下,它可以非常高效地被存储和操作。只需简单的数组操作,即可轻松完成许多复杂的数据结构操作,从而提升算法的性能。希望这个解释对你有帮助!如果你有更多问题或需要举例说明,请随时告诉我!😊每一个结点要么是叶子结点,要么有两个子结点:即没有只有一个子结点的结点。所有叶子结点都在同一层。

2024-09-13 15:52:54 849

原创 简单介绍Maven项目管理和构建自动化工具

Maven是一个强大的项目管理和构建自动化工具,特别用于 Java 项目。它提供了一个标准的结构和管理机制,从而简化了项目的构建、依赖管理和发布过程。

2024-09-11 09:42:36 503

原创 C++力扣简单算法题整理-2(字符串、数组)

如果 少于 k 个独一无二的字符串,那么返回 空字符串 “”。由于少于 3 个独一无二字符串,我们返回空字符串 “”。输入:arr = [“d”,“b”,“c”,“b”,“c”,“a”], k = 2。arr 中所有字符串都是独一无二的,所以返回第 1 个字符串 “aaa”。输入:arr = [“aaa”,“aa”,“a”], k = 1。输入:arr = [“a”,“b”,“a”], k = 3。arr 中独一无二字符串包括 “d” 和 “a”。由于 k == 2 ,返回 “a”。

2024-09-06 15:24:44 245

原创 C++中遍历数组时使用++i和i++的区别

在遍历普通的数组时,++i和i++的区别其实与在遍历 STL 容器中的迭代器时的区别类似,但在大多数现代编译器和简单数据类型情况下,性能差异基本可以忽略。尽管在遍历普通的数组时性能差异不大,不过在专业编程中,还是推荐使用 `++i` 而不是 `i++`。这是因为这种习惯有助于保持代码的一致性和高效性,特别是在考虑到其他复杂的数据结构或对象时。此外,`++i` 本身的语义也更明确——直接说明了在此操作中我们的主要目的是递增,而不是获取以前的值。。

2024-09-03 09:37:17 393

原创 C++使用迭代器遍历的时候为什么++it 要比it++好一些呢

在 C++ 中,++it和it++是递增迭代器的两种方式,但它们有一些区别,特别是在性能优化的角度。我们可以一起看看这两种方式的具体差别。尽管在大多数现代编译器中,对于简单的迭代器如 `int*`,优化器可能会消除绝大多数的差异,但在习惯上和代码效率上,还是提倡使用 `++it` 而不是 `it++`。这是因为前者在一些特殊的迭代器实现中性能更优,并且这样的习惯有助于写出更高效的代码。

2024-09-03 09:29:35 315

原创 DDS(Data Distribution Service)的数据状态分布和管理简单介绍

通过这些机制,DDS 可以有效地关注数据状态的分布和管理,确保数据在分布式系统中的一致性和实时性。DDS 的设计使其特别适用于需要高度可靠和实时数据分发的应用场景,如工业自动化、军事通信、机器人控制等。🌟如果你还有其他问题或需要进一步的细节,随时告诉我!😊。

2024-09-02 17:24:23 690

原创 DDS(Data Distribution Service)简单介绍

DDS 是由 Object Management Group (OMG) 制定的标准,通过定义数据分发的模型和 API,提供了一种数据驱动的通信机制。与传统的消息传递系统不同,DDS 更加关注数据状态的分布和管理。DDS 提供了一种强大且灵活的通信机制,适用于各种复杂、实时的数据交换场景。通过其丰富的 QoS 策略、强类型数据模型和内置的自动发现机制,DDS 能够满足高性能、可靠性和扩展性的需求。

2024-09-02 16:25:52 913

原创 ROS2 简单介绍

ROS 2 是一个开源的机器人中间件框架,旨在促进开发复杂的机器人应用程序。它建立在 DDS(Data Distribution Service)标准之上,提供了高效且灵活的通信机制。ROS 2 支持多平台,包括 Linux、Windows 和 macOS。ROS 2 是一个强大的机器人开发框架,继承了 ROS 1 的优点,同时在安全性、实时性、多平台支持和分布式系统方面做了大量改进。通过其模块化和可扩展的设计,ROS 2 提供了灵活性和高效性,使其成为现代机器人开发的重要工具。

2024-09-02 16:18:33 896

原创 C++中map简单介绍说明

map是 C++ STL 中强大且灵活的容器,适用于许多需要高效键值对存储与访问的场景。无论是查找、插入还是删除操作,map都能提供优异的性能表现。

2024-08-12 11:33:36 447

原创 C++中vector简单介绍说明

vector是一个非常强大且灵活的容器,适用于大多数需要动态数组功能的场景。无论是存储基本数据类型还是自定义对象,C++ 的vector都能提供高效、方便的解决方案!

2024-08-09 10:00:29 276

原创 C++力扣简单算法题整理-1(字符串、数组)

输入:items = [[“phone”,“blue”,“pixel”],[“computer”,“silver”,“phone”],[“phone”,“gold”,“iphone”]], ruleKey = “type”, ruleValue = “phone”请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。输入:words1 = [“leetcode”,“is”,“amazing”,“as”,“is”], words2 = [“amazing”,“leetcode”,“is”]

2024-08-09 09:39:49 303

原创 C 和 C++ 中信号处理简单介绍

信号处理是 C 和 C++ 编程中的一项重要功能,能够让程序有效地响应异步事件。通过注册信号处理函数,程序可以在发生特定信号时执行特定的逻辑处理。从而增强了程序的鲁棒性和用户体验。✨。

2024-08-06 17:07:11 517

原创 C语言中的预处理简单介绍

宏定义允许使用文本替换的方式定义常量和宏函数。常量宏:定义常量。#define PI3.14159带参数的宏函数:定义宏函数,参数会进行替换。使用示例#define PI3.14159return 0;return 0;return 0;return 0;return 0;return 0;return 0;return 0;#undef可以用于取消之前定义的宏。100__FILE__:当前源文件的名称。__LINE__:当前行号。__DATE__

2024-08-06 16:51:13 477

原创 C语言中的typedef、#define、const简单介绍

特性typedef#defineconst用途创建类型别名定义宏或常量定义不可修改的变量存储有存储分配无存储分配(仅文本替换)有存储分配类型安全是否是作用范围仅在当前作用域全局有效当前作用域通过这些特点和示例,可以更好地理解在 C 语言中何时使用typedef#define和const来简化代码和提高可读性。

2024-08-06 15:41:01 278

原创 C 和 C++ 的内存管理简单介绍

C 和 C++ 都提供了动态内存分配的机制,但 C++ 提供了更高级的内存管理工具(如智能指针),使得内存管理更加安全和高效。在使用动态内存时,了解内存的分配和释放方式、以及可能出现的问题(如内存泄漏和悬挂指针),是保证程序稳定性和性能的关键。

2024-08-06 14:15:05 865

原创 C++中的回调函数简单介绍

回调函数在 C++ 中是一种重要的编程工具,它通过将函数作为参数传递,提供了极大的灵活性和可扩展性。无论是使用函数指针、还是类成员函数,理解和应用回调函数都是现代 C++ 编程的重要技能。

2024-08-06 14:13:57 422

原创 C++中的回调函数简单介绍

回调函数在 C++ 中是一种重要的编程工具,它通过将函数作为参数传递,提供了极大的灵活性和可扩展性。无论是使用函数指针、还是类成员函数,理解和应用回调函数都是现代 C++ 编程的重要技能。

2024-08-06 10:37:26 319

原创 C++中 指针和引用简单介绍

指针是一个变量,其值为另一个变量的地址。指针可以用来间接访问和修改原变量的值。

2024-08-06 09:17:56 347

原创 C++ 中有符号和无符号类型的区别简单说明

在C++中,有符号和无符号类型的主要区别在于它们如何表示数值,特别是负数和正数。

2024-08-05 16:13:11 458

原创 C++ 中基本数据类型所占字节简单说明

在C++中,基本数据类型的大小在不同平台和编译器之间可能会有所不同,但通常有一些基本的标准。

2024-08-05 15:44:34 196

原创 ASCII码表及简单介绍

ASCII(美国信息交换标准代码)是一个字符编码标准,它使用7位二进制数表示128个字符。

2024-08-05 15:39:39 446

原创 简单介绍一下常用的字符编码

字符编码是确保计算机能正确显示和处理文本的关键。根据不同的语言和需求选择合适的编码可以提高数据的兼容性和可读性。🌏🖥️✨。

2024-08-05 15:28:42 278

原创 C++ STL中 `set` 和 `multiset` 简单对比

在 C++ STL 中,set和multiset都是用于存储唯一或重复元素的关联容器,但它们在处理元素的唯一性和特性方面有显著的区别。

2024-08-05 14:45:51 378

原创 C++ STL中 `map` 和 `multimap` 简单对比

在 C++ STL 中,map和multimap都是关联容器,用于存储键值对(key-value pairs),但它们在处理键的唯一性方面有所不同。

2024-08-05 14:36:44 208

原创 C++ STL中 `map` 和 `unordered_map` 简单对比

在 C++ STL 中,map和都是关联容器,用于存储键值对(key-value pairs)。它们有一些相似之处,但也有关键的区别。

2024-08-05 14:16:14 297

原创 C++ STL中 `set` 和 `unordered_set` 简单对比

在 C++ STL 中,set和都是用于存储唯一元素的容器,但它们在实现方式、性能和特性上有一些重要的区别。

2024-08-05 14:05:21 501

原创 C++的标准模板库简单介绍

STL为C++程序员提供了一套强大且高效的工具来管理和操作数据,究其目的就是提高代码的可重用性和效率。熟练掌握STL可以显著提升编程效率哦!😊。

2024-08-05 11:21:54 280

原创 C++中构造函数和析构函数简单介绍

构造函数是一个特殊的成员函数,用于初始化对象。当创建对象时,构造函数会被自动调用。

2024-08-05 10:32:48 338

原创 C++自定义类重载‘=’运算符

在 C++ 中,自定义类可以使用“=”赋值运算符进行赋值,但只有在为该运算符提供了定义的情况下。在默认情况下,C++ 提供了一个默认的赋值运算符,该运算符执行逐位拷贝(bitwise copy),适用于简单的数据类型和对象。然而,如果你的类包含指针或动态分配的资源(如字符串、数组等),那么默认的赋值可能导致资源管理出现问题,例如内存泄漏或双重释放。为此,你应该显式地重载赋值运算符,以管理资源的正确复制。

2024-08-05 10:21:49 329

原创 C++ 运算符重载简单介绍及用法

运算符重载是一种强大的特性,可以使自定义类的对象有更自然的表现。通过合理使用运算符重载,可以提高代码的可读性和可维护性。👍 记得在重载运算符时要保持语义一致,以免造成混淆!

2024-08-05 09:24:32 272

原创 C++ 智能指针简单介绍及用法

智能指针是 C++11 引入的一个非常实用的特性,旨在自动管理动态分配的内存,避免内存泄漏和悬空指针问题。和。利用智能指针可以帮助我们有效管理内存,降低内存泄漏的风险,提高程序的安全性和稳定性。🎉 选择合适的智能指针类型可以使代码更简洁和易于维护。

2024-08-02 17:49:30 701

原创 Node.js中的EventEmitter类介绍

Node.js 里面的许多对象都会分发事件:一个 net.Server 对象会在每次有新连接时触发一个事件, 一个 fs.readStream 对象会在文件被打开的时候触发一个事件。包括 fs、net、 http 在内的,只要是支持事件响应的核心模块都是 EventEmitter 的子类。其次 JavaScript 的对象机制是基于原型的,支持 部分多重继承,继承 EventEmitter 不会打乱对象原有的继承关系。首先,具有某个实体功能的对象实现事件符合语义, 事件的监听和发生应该是一个对象的方法。

2023-12-12 14:45:38 1176

原创 Node.js 事件循环简单介绍

Node.js 事件循环是 Node.js 运行时环境中的一个核心机制,用于管理异步操作和回调函数的执行顺序。它基于事件驱动模型,通过事件循环来处理和派发事件,以及执行相应的回调函数。Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。Node.js 几乎每一个 API 都是支持回调函数的。Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。

2023-12-12 13:45:34 1594

原创 Node.js管理工具npm简单介绍

将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。版本号有了这个保证后,在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范围的版本号。node.js很早的版本就已经集成了npm工具,如果你安装好了node.js,那就不用单独安装npm。我们可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的结果。

2023-12-11 14:53:46 1751

原创 Node.js创建一个简单的服务器

简单的说 Node.js 就是运行在服务端的 JavaScript。为什么这么说呢,Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台,是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。那么让我们简单的创建一个node.js服务(前提条件你的操作平台上已经安装了node环境,网上有好多教程,我们在这篇文将就不详细介绍了)。

2023-12-11 12:21:23 757

原创 qt 定时器用法

在qt开发中,定时器是我们经常用到的。我们接下来说一下定时器的三种用法,需要注意的是定时器事件是在主线程中触发的,因此在处理耗时操作时应特别小心,以避免阻塞应用程序的事件循环。

2023-12-07 10:18:45 1948

原创 搭建本地git服务器及详细操作步骤

将客户端公钥id_rsa.pub内容复制到服务端.ssh/下新建文件authorized_keys里,这样我们在拉取推送代码时,就不需要输入密码了。在服务器终端输入如下命令,输入两次密码后,一路回车就创建好了。客户端:windows10_x64、Ubuntu20.04。更改或者添加代码文件之后要提交代码分支到远程仓库。无论是服务端还是客户端都需要先安装git。服务器:Ubuntu18.04。以上就完成了代码分支的推送。

2023-09-26 17:40:23 3269

原创 Linux环境下通过SDK海康摄像头登录失败

显而易见我们的程序依赖是没有问题,那么就着重考虑海康动态库。不得不说海康埋了一个大坑,就是它的SDK会去读取LD_LIBRARY_PATH环境变量,来加载库动态库文件。大多开发人员是不知道这个的,所以可能会花费大量时间去解决这个问题,这样会造成很大的人工成本。在Linux环境下,我们在QtCreator IDE开发环境通过海康SDK打开摄像头没有问题。然而通过Linuxdeployqt 打包程序,我们发现所有功能都正常,只有摄像头无法登录。显然代码是没有问题的,那么我们就需要考虑环境。

2023-09-06 15:24:15 922

空空如也

空空如也

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

TA关注的人

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