自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法之分支定界

分支定界(Branch and Bound)是一种用于解决组合优化问题的算法设计范式。其核心思想是通过系统枚举所有可能解,并利用上下界策略剪枝,丢弃不可能产生最优解的子问题,从而有效减少搜索空间。

2025-04-24 20:30:00 914

原创 算法之回溯法

回溯法是一种通过探索所有可能的候选解来找出所有解的算法。它采用试错的思想,尝试分步解决一个问题,在分步解决问题的过程中,当发现现有的分步答案不能得到有效的正确的解答时,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。

2025-04-22 21:00:00 1038

原创 算法之动态规划

动态规划(Dynamic Programming, DP)是一种解决复杂问题的算法设计技术,适用于具有“重叠子问题”和“最优子结构”性质的问题。动态规划将问题分解成更小的子问题,通过解决这些子问题来解决原始问题。这种方法的关键在于避免重复计算。一旦解决了一个子问题,它的解就被存储起来,以便后续需要时直接使用,从而避免了重复计算。这种记忆化的技术称为“缓存”。

2025-04-21 21:00:00 1700

原创 算法之分而治之

"分而治之"(Divide and Conquer)是一种算法设计策略,它将一个问题分解成更小的、相互独立的子问题,然后递归地解决这些子问题,最后将它们的解合并起来,得到原始问题的解。

2025-04-21 20:00:00 901

原创 算法之贪心算法

贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最优的选择,从而希望以这种方式能够达到全局最优解的一种算法思想。贪心算法并不总是能得到全局最优解,但在一些问题中,它能产生出足够好的解,而且相对简单高效。

2025-04-17 20:00:00 2095

原创 数据结构之图

图(Graph)G由顶点集合V(G)和边集合E(G)构成。

2025-04-16 21:30:00 946

原创 数据结构之BST、AVL、红黑树、哈夫曼树与B族树

二叉搜索树(BST):以简洁的二分法则奠定数据检索基石,却暗藏退化成链表的隐患;AVL树:通过高度平衡的旋转策略,首次将自平衡理念引入二叉树;红黑树:以巧妙的颜色标记和近似平衡,成为Java HashMap、C++ STL的幕后英雄;哈夫曼树:用贪心算法重构最优权重路径,构建无损压缩的核心骨架;B族树(B/B+/B*):突破内存限制,用多路平衡与磁盘页管理重塑数据库索引引擎。

2025-02-18 21:30:00 781

原创 数据结构之堆(Heap)

堆(Heap) 是一种基于完全二叉树结构的非线性数据结构

2025-02-17 18:30:00 1003

原创 数据结构之二叉树

二叉树(Binary Tree)是一种特殊的树形数据结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树可以为空(没有节点),或者由一个根节点和两棵互不相交的子树(左子树和右子树)组成。

2025-02-12 11:31:00 1356

原创 数据结构之栈和队列

栈(Stack)是一种特殊的线性数据结构,遵循“后进先出”(LIFO, Last In First Out)的原则。队列(Queue)是一种特殊的线性数据结构,遵循“先进先出”(FIFO, First In First Out)的原则。

2025-01-07 00:00:00 966

原创 数据结构之串

在数据结构中,串(String) 是一种用于表示和操作字符序列的结构。它是最基本的线性表类型之一,广泛应用于文本处理、模式匹配、字符串操作等领域。

2025-01-03 00:00:00 1214

原创 数据结构之广义表

广义表(Generalized List)是一种重要的线性数据结构,它是线性表的推广。广义表不仅能存储单个元素,还能存储其他广义表,因而具有递归性质。

2024-12-12 00:15:00 1290

原创 数据结构之链表

链表是一种常见的线性数据结构,由一系列节点组成。每个节点包含两部分:数据域和指针域。数据域用于存储具体的数据,而指针域则用于指向下一个节点。

2024-12-12 00:00:00 1082

原创 数据结构之顺序表

顺序表是一种使用连续内存空间存储元素的线性表,适用于频繁访问但不常改动的场景。

2024-11-28 23:15:00 1186

原创 数据结构与算法绪论

数据结构与算法是计算机科学中用于有效组织数据和解决问题的基本工具。

2024-11-28 00:30:00 1465

原创 Qt 事件处理

GUI 应用程序是由事件(event)驱动的,点击鼠标、按下某个按键、改变窗口大小、最小化 窗口等都会产生相应的事件,应用程序对这些事件进行相应的处理以实现程序的功能。本章介绍 Qt 事件系统的基本原理和处理流程,如何对特定事件进行处理,事件与信号的关系,事件拦截和 事件过滤的处理方法,以及拖放操作相关事件的处理等内容

2024-11-27 07:00:00 892

原创 Qt 元对象系统

Qt元对象系统是对标准C++的扩展,为Qt提供了信号与槽机制、实时类型信息、动态属性系统等功能。

2024-11-19 21:05:31 1957

原创 Qt 文件操作

Qt 提供了一套强大的文件操作API,使得在各种应用场景下进行文件管理变得高效而简单。无论是在桌面应用程序、嵌入式系统还是移动应用中,浏览、读取、写入和管理文件及目录都是基本而重要的任务。

2024-09-24 00:00:00 1536

原创 QRegularExpression

QRegularExpression 是 Qt 5.10 引入的类,用于处理正则表达式。它提供了更现代和高效的正则表达式功能,支持 Perl 兼容的正则表达式(PCRE),与之前的 QRegExp 相比,性能和功能都得到增强。

2024-09-23 15:00:21 1734

原创 Python 数据类型

Python 是一门动态类型语言,支持多种数据类型。这些数据类型可以大致分为基本数据类型和高级数据类型。

2024-09-22 00:00:00 883

原创 Qt日志输出及QsLog日志库

本文主要介绍Qt日志输出系统和QsLog日志库的使用,QsLog是一个基于Qt的QDebug类的易于使用的记录器。

2024-09-21 00:00:00 2408

原创 Qt 常用数据类型

Qt常用数据类型的总结,主要介绍基础数据类型、字符串类型、QVariant。

2024-09-20 09:45:40 2077

原创 C++ 元编程

元编程的主要目的在于将各种计算从运行期提前至编译期进行,以实现程序运行时的性能提升。也正因如此,元编程是一种增加程序的编译时间,从而提升程序运行效率的编程技术。

2024-09-18 22:39:17 2188 5

原创 C++ 策略技术中的算法策略

策略模式是一种设计模式,允许在运行时选择算法的行为。在C++中,这可以通过模板和多态实现。策略类通常定义一个接口,各种不同的策略类实现这个接口,以提供具体的算法实现。

2024-09-15 00:00:00 1032

原创 C++ 萃取技术——将萃取类模板用作模板参数

在 C++ 编程中,理解和应用 Trait 类模板是提高代码质量和灵活性的关键技术之一。Trait 类模板提供了一种机制,通过这种机制可以在编译时查询或设置有关类型的特定属性。这些属性可能包括类型的数学特性、行为特性、或者与类型相关的支持操作。

2024-09-14 00:00:00 1797

原创 Qt 实现自定义截图工具

本文使用Qt框架从头开始创建一个简单的屏幕截图工具。

2024-09-13 17:35:01 1614

原创 C++ 萃取技术——使用SFINAE特性的信息萃取

SFINAE(Substitution Failure Is Not An Error,替换失败并不是一个错误)是实现类型萃取中一个重要的技巧,它允许编译器在模板实例化过程中忽略那些会导致错误的替换,而不是产生编译错误。

2024-09-13 00:00:00 1140

原创 C++ 萃取技术——值萃取

在 C++ 编程中,萃取技术(Traits)是模板元编程的一个核心概念,用于在编译时提供类型相关的信息。其中,值萃取(Value Traits)是一种特定形式的萃取技术,它允许程序员为不同的数据类型定义特定的属性或值。

2024-09-12 00:00:13 1310

原创 C++ 萃取技术——固定萃取技术

萃取技术用于对模板中的各种模板参数进行管理。这种技术往往是通过书写一个类模板来体现,而这种类模板也称为“trait类模板”。从表现上来说,trait类模板像一个中间件一样,夹在不同的功能代码之间,使代码之间结合或调用(交互)变得更加灵活。

2024-09-11 19:27:01 1410

原创 C++ 标准库的典型内容

C++ 标准库提供了一系列强大且灵活的工具和组件,用于简化程序设计和提高开发效率。它包含多种功能模块,涵盖了内存管理、数据结构、算法、输入输出操作以及类型特征等多个方面

2024-09-10 00:01:10 965

原创 C++ 模板进阶知识——类模板中可变参的逐步展开

在C++编程中,模板是一种强大的工具,用于增加代码的复用性和灵活性。本文深入探讨了类模板中可变参数(Variadic Templates)的使用及其逐步展开的技术。本文将通过具体示例解释如何在类模板继承中利用可变参数来创建更通用和灵活的代码结构。

2024-09-10 00:00:50 783

原创 C++ 模板进阶知识——stdenable_if

在 C++ 的模板编程中,控制模板的实例化是关键且复杂的一部分。std::enable_if 是一个模板元编程工具,用于基于编译时条件(如类型特征)来启用或禁用模板代码。这种技术不仅增强了代码的灵活性,还提高了类型安全性,是现代 C++ 开发者必须掌握的技能之一。

2024-09-09 00:03:24 1037

原创 C++ 模板进阶知识——完美转发

完美转发是C++中一种高级的技术,用于在函数模板中转发参数至另一个函数,同时保持所有参数的值类别(左值、右值)和其他属性(如const修饰符)不变。这一技术主要通过模板和std::forward实现,并在泛型编程中尤为重要,因为它允许函数模板在不丢失任何参数信息的前提下传递参数。

2024-09-08 00:02:44 2342

原创 C++ 模板进阶知识——类型推断

类型推断(推导)这件事情在模板编程中经常出现,很多时候编译器都会做类型推断。这方面的相关知识在现代C++语言开发中是经常用到的,算是一个比较大的知识点,有必要对类型推断的知识理论做一些储备。

2024-09-07 00:00:00 1427

原创 C++ 模板进阶知识——万能引用

万能引用是C++11中引入的一个高级特性,它允许函数模板参数根据传入的实参自动成为左值引用或右值引用。这一特性极大地增强了模板函数的灵活性和通用性,使得编写可同时处理左值和右值的通用代码成为可能。

2024-09-06 00:00:32 1816

原创 C++ 模板基础知识——模板的特殊继承关系

模板的继承其实与普通的继承区别不大,但在模板的继承关系中,有一些比较特殊的继承关系。在C++中,本文将重点介绍两种特殊的模板应用方式:奇异的递归模板模式(CRTP)和混入(Mixins)。这些技术在提供编译时多态和代码复用方面具有独特的优势。

2024-09-05 00:00:55 1226

原创 C++ 模板基础知识——多态在模板中的应用

在C++中,模板和多态是两种强大的编程技术,它们可以用来创建灵活和可重用的代码。虽然多态通常与继承和虚函数(动态多态)关联,但在模板中使用时,主要涉及到编译时多态(静态多态)。

2024-09-04 00:01:06 1395

原创 C++ 模板基础知识——可变参数模板

可变参数模板(Variadic Templates)是C++11引入的新特性,允许模板定义中包含任意数量的模板参数。这大大简化了以往实现类似功能所需的复杂代码。

2024-09-04 00:00:51 1688

原创 C++ 设计模式——设计模式总结

设计模式是软件设计中常见问题的典型解决方案。它们是经过反复验证的、可重用的代码设计经验,用于解决在特定情境下反复出现的软件设计问题。

2024-09-03 00:00:00 1126

原创 C++ 设计模式——解释器模式

解释器模式是一种特定于语言的模式,用于定义如何评估语言的句法或表达式。它适用于某些重复出现的问题,可以将一个需要解释执行的语言中的句子表示为一个抽象的语法树。这种模式通常被用于开发编程语言解释器或简单的脚本引擎。

2024-09-02 00:00:00 2945

GitLab 入门教程:环境搭建与使用

GitLab 是一个开源的代码托管和协作平台,功能类似于 GitHub。它可以帮助团队管理代码库、跟踪任务、进行代码审查和持续集成/持续部署 (CI/CD)。 GitLab环境搭建流程: 下载: 从GitLab官方网站下载所需的安装包。 安装: 将下载的文件上传至/opt目录。 使用rpm进行安装。 进行基础配置,包括设置外部访问地址和时区。 安装完成后,进行重新配置和启动GitLab服务。 访问: 通过配置的地址访问GitLab。 获取默认的管理员账号(用户名为root,密码在/etc/gitlab/initial_root_password中,文件会在24小时后自动删除)。 可进行汉化配置和修改默认密码。 用户管理: 在管理员面板添加用户和创建群组。 用户权限包括Regular和Admin两种。 群组管理: 通过创建群组管理项目,设置不同的用户权限,如Guest, Reporter, Developer, Maintainer, Owner。 这个文档详细描述了如何从头搭建并配置一个GitLab环境,包括安装、配置、用户和群组管理的具体步骤​(Gitlab环境搭建)。

2024-08-14

Git 从入门到精通:版本控制实战指南

这份文档详细介绍了 Git 的基本概念、工作流程、操作命令以及与远程仓库(如 GitHub、码云)的交互。以下是文档内容的总结: Git的简介和历史:介绍了Git的起源,如何从一个为Linux内核项目设计的版本控制系统演变而来,并与集中式版本控制系统(如SVN)进行对比。 Git的工作原理:讲解了Git的分布式版本控制系统的特点,包括本地仓库与远程仓库的概念,以及Git的常见操作如克隆(Clone)、推送(Push)、拉取(Pull)等。 Git的安装与配置:提供了Git在Windows平台上的安装步骤,并介绍了如何配置用户名和邮箱。 创建Git仓库:详细说明了如何使用Git命令行和TortoiseGit(图形化工具)来初始化仓库。 Git的工作区域:解释了Git的三种工作区域——工作区、暂存区、本地仓库——以及它们之间的交互流程。 提交与管理文件:描述了如何在Git中添加、修改文件并提交到版本库,包括使用命令行和TortoiseGit的操作方式。 版本历史管理:介绍了如何查看和管理Git中的历史版本,并提供了前进和回退到不同版本的操作方法。

2024-08-14

mingw 编译的 osg3.6.5

对应 Qt 5.15.2版本 mingw 编译的 osg3.6.5 和 osgQOpenGL(osgQt) 环境变量设置: ..\OpenSceneGraph-mingw\3rdparty\bin ..\OpenSceneGraph-mingw\osg3.6.5\bin ..\OpenSceneGraph-mingw\osg3.6.5\share\OpenSceneGraph\bin

2024-08-10

空空如也

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

TA关注的人

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