自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stark的博客

向大家分享我的学习笔记,请看VCR(欢迎大家互粉/三连,支持长期互访)

  • 博客(120)
  • 收藏
  • 关注

原创 【Linux系统编程】动态库&静态库

库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译成库文件;在链接步骤中,链接器从库文件取得所需的代码,复制到生成的可执行文件中。Linux中常见的库文件有两种,一种以.a为后缀,为静态库,另一种以.so为后缀,为动态库,动态库也称为共享库。

2024-12-11 18:01:23 1241

原创 【Linux开发工具】gcc编译器

在预处理阶段,预处理器会读取C语言源代码,对其中的预编译指令(如#include,#define,#pragma等)进行处理。这一步会展开宏定义、处理条件编译指令、插入头文件内容、删除注释等。处理后的代码文件通常以.i为拓展名,但该文件还是C代码。:在编译阶段,编译器将预处理后的代码转换为机器可识别的语言,也就是汇编代码。这一步包括语法分析、语义分析、检查代码的规范性,确保没有语法错误。处理后的代码通常以.s为扩展名。

2024-12-10 23:44:17 1383 1

原创 【Linux开发工具】vim编辑器

本文包括Linux中的vim编辑器的:配置、基本命令。以及命令模式、末行模式、编辑模式这三种模式的切换方法,命令模式的基本命令、末行模式的基本命令,最后还有vim的分屏操作。文章末尾附上一张vim键盘图。

2024-12-10 22:41:36 1518

原创 【Linux基础命令】补充总结

本文包括一些其他的基本的指令。主要可以帮助大家:ifconfig:查看ip地址、hostname:重命名主机名、alias:为命令起别名、使用指令关机重启、观察系统资源、查看用户信息和系统信息等

2024-12-06 09:11:46 698 1

原创 【Linux基础命令】压缩与解压

为了使传输的文件大小尽可能地小,我们采用压缩的方式生成压缩文件,然后将压缩包传输过去就可以了。衡量压缩方法地好坏主要有两点综合考量:一是压缩速度,二是压缩程度。很好理解,压缩一个文件,我当然不能一直等他压缩吧,不然还赶不上直接传输呢。另外,压缩程度不够的话,文件还是那么大,这跟我们的诉求不一样啊,我们就是为了尽可能地小,它压缩一下就压缩了百分之一,这还不如不压缩,毫无意义。不知道大家学过数据结构中地哈夫曼树吗,哈夫曼编码就是一种压缩算法。

2024-12-03 10:44:15 1410 15

原创 【Linux基础命令】用户与权限

【】用户是Linux系统工作中重要的一环,用户管理包括 用户 与 组账号 的管理【】在Linux系统中,不论是由本机或是远程登录(SSH)系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。【】Linux系统中的root账户通常用于系统的维护和管理,它对Linux操作系统的所有部分具有不受限制的访问权限。【】在Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”【】在大多数版本的Linux中,都不推荐直接使用root账号登陆系统。

2024-11-27 17:32:56 1162 5

原创 【Linux基础命令】软件包安装

在我们安装Linux系统的时候,不同的发行版本提供的默认指令有所不同,如果你想使用一些命令,可以从Ubuntu或Centos服务器去下载这些命令。(本文以Ubuntu为例进行讲解)。假设现在我们有三台机器,想要获取下载一些命令用来后续工作使用或解决当下工作需求。按照我们的理解,就是这样的,直接从Ubuntu服务器下载。这样也对,但也不对,因为Ubuntu的服务器在国外。

2024-11-27 17:07:59 3239 1

原创 【Linux基础命令】查阅与统计

在使用linux时,我们免不了指令的使用、查看文件的内容以及统计文件的字词行数等信息。本文包含指令:which、man、whoami、pwd;cat、head、tail、less、more;wc、find。包含的重要知识点有:帮助指令,文件内容的查询、统计与查找,输出重定向,管道。

2024-11-25 14:19:28 1752 8

原创 【Linux基础命令】文件与目录

在Linux中,有着一句话,叫做:一切皆文件。也就是任何东西都是以文件的形式存储的。本文包含的指令有:ls、pwd、cd、du;mkdir、touch、cp、mv、rm等。还有文件的分类等信息

2024-11-24 23:42:36 1212 10

原创 Web前端--HTML【学习只需一篇 之 值得收藏的万字笔记】

Web前端开发三大步骤:HTML--CSS--Javascript。本节我们通过一篇来解决html的入门级问题

2024-11-12 23:36:28 1269 15

原创 《数据结构》--二叉树【下】

在节点结构中加入层号属性。结果容器由vector:res改为multimap:m。输出时,输出m.first和m.second即可将层号和节点值同时打印出来。最简单的方法就是在上面的基础上,输出m的最后一个元素的first属性值。在 二 的基础上,输出时,如果m.first == i,输出。二叉树满度也就是节点的度为2。也就是左右孩子都存在。分支节点是度不为0的节点。也就是有孩子节点存在。叶子节点是度为0的节点。也就是没有孩子节点。或者将代码改为:(插入时直接判断)

2024-11-12 22:48:59 554

原创 《数据结构》--二叉树【上】

树是一种数据结构,它是由n(n>=1)个有限节点组成的一个具有层次关系的集合。把它叫做"树"是因为它看起来像一颗倒挂着的树,也就是说它是根在上,叶在下的。本文包括:树的定义、特点、基本术语。二叉树的定义、性质、特殊二叉树。二叉树的遍历方法(非递归+递归),包括遍历算法的分析和编码实现。

2024-11-10 12:26:40 977 2

原创 QT界面开发【常用控件-按钮组】

在Qt中,常用的按钮类型有很多种,每种按钮都有其特定的用途和特点。本文着重讲解:QPushButton、QToolButton、QRadioButton、QCheckBox,文中还会涉及一些其他的按钮

2024-10-25 21:21:58 1112 94

原创 QT界面开发(对话框的模态与非模态、标准对话框)

模态对话框在打开时会阻塞父窗口,直到对话框关闭。用户必须先处理对话框(如输入信息、按下按钮等)才能返回窗口。

2024-10-25 21:21:49 2712 34

原创 我的创作纪念日

我依稀记得第一个比较完整的小型项目就是扫雷了,当时学完判断和循环,感觉也并没有很难,就是第一次参与项目的实战,有点不知所措,有很多东西考虑不到,bug频出,让人很恼火,但也确实有很多东西是在一次次的实战中才学习到的。在日常的学习过程中,我认为,面对新知识的时候,我们要保持敬畏,保持好奇的态度去学习。哈哈,没啥日常了,在校大学生嘛。我打算接下来,继续我的创作之旅,记录我的学习进度,记下学习的知识点。我觉得最好的一段代码应该就是在写算法题的时候,灵机一动,使用了C++的异常处理,将错误信息抛出从而获得了AC。

2024-10-23 13:11:44 965 60

原创 QT界面开发:图形化设计、资源文件添加

此时我们创建项目时就可以选择添加UI选项了。添加完之后,我们可以看到,文件中多出了一个存放界面文件的目录,下面有个.ui的界面文件。甚至pro的项目文件中也会添加一项内容。我们点击界面文件中的.ui文件,我们可以来到设计界面。设计界面的一套流程主要包括以下几个步骤:1.使用工具箱中的控件(如按钮、文本框、标签等)拖拽到主窗体上。2.通过属性编辑器调整控件的属性(如大小、字体、颜色等),3.使用布局管理器(如水平布局、垂直布局等来控制控件的排列与自适应行为)。

2024-10-23 11:20:44 2121 55

原创 QT界面开发--我的第一个windows窗体【菜单栏、工具栏、状态栏、铆接部件、文本编辑器、按钮、主界面】

经过前面的铺垫,今天我们就开始我们图形化界面之旅了,我们的第一个窗体主要包括:菜单栏、状态栏、工具栏、铆接部件、还有Qt提供的一些主窗体的API。第一部分:主界面(QMainWindow)当创建好项目后,我们直接运行,看一下运行结果:你会发现,这个界面是小小的一坨,看起来一点也不舒服,那我们就可以使用resize()方法来更改界面尺寸。代码如下:MainWindow::MainWindow(QWidget *parent) : QMain

2024-10-22 17:01:21 1867 31

原创 【Gitee版】一篇教你如何快速入门git(详解)

Git 是一个强大的分布式版本控制系统,用于管理源代码。以下是对 Git 工具和概念的详细说明,帮助你更好地理解和使用 Git。

2024-10-18 23:01:52 4115 57

原创 Qt界面开发(对象树概念、信号与槽机制)

我们不止能对Qt提供的组件进行信号与槽链接,我们也能自定义一个类,让自定义类的一些信号与槽与Qt提供的标准组件的信号与槽进行关联,也能使两个自定义类的信号与槽进行关联。我们就以后者进行说明:现在定义一个teacher类和student类,teacher对象作为信号发出者:下课了信号,student对象作为信号的接收者,槽处理行为是:吃饭去。下面我们开始添加两个类:弹出需要添加的文件类型:添加自定义类Class此时你必须输入类名以及可以选择性的选择继承的基类。头文件和源文件都会自动帮你起名字的。

2024-10-18 22:05:26 1498 21

原创 【C++11入门】新特性总结之移动语义(右值、右值引用、std::move()...)

C++11新特性:深浅拷贝、左值右值、右值引用、移动语义、万能引用(转发引用)、引用折叠、完美转发。你想知道什么?一篇解决你的所有疑惑。

2024-10-17 05:15:00 2250 18

原创 【C++11入门】新特性总结之lambda表达式

现代C++语言的核心特征之一:lambda表达式。虽然其它编程语言早已具备了这种特性,但直到C++11标准发布,C++11才具备了lambda表达式。本节主要讲解lambda表达式的语法和使用方法。具体包括:捕获列表、可选参数列表、可选异常说明符、可选返回值类型等。此外,还将介绍lambda表达式在STL算法中的应用和泛型lambda表达式的使用方法。

2024-10-17 05:00:00 987 7

原创 QT界面开发:入门篇

本节包括:QT的安装,认识,创建项目,快捷键,默认文件的讲解

2024-10-15 23:45:52 6646 31

原创 输入输出--I/O流【C++提升】

C++ 提供了多种方式来控制输出格式。你可以使用格式化标志和流操作符来改变输出格式。#include // 用于 std::setprecision 和 std::fixed// 输出 123.46return 0;

2024-10-15 13:18:17 1239 10

原创 【C++11入门】新特性总结之智能指针

在C++中,智能指针是用于管理动态分配内存的对象,这些对象能够自动处理内存的释放,从而减少内存泄露的风险。C++11主要引入了三种主要的智能指针:std::unique_ptr, std::share_ptr, std::weak_ptr。下面我们一一介绍。

2024-10-14 12:45:00 922 53

原创 【C++11入门】新特性总结大全-Part2

上一篇我们提了一些我们常用但你可能不知道是C++11标准的一些特性。本节开始对上一节的内容进行一定的延伸。

2024-10-14 12:30:00 912 55

原创 【C++11入门】新特性总结大全-Part1

C++11标准公布后,C++社群中出现了久违的热情,有人甚至叫出“C++的复兴”。指望C++重回20世纪90年代中期那样的地位显然是昧于大势的期望,但是C++经历了这么多年的打磨与起伏,在各领域的地位已经非常稳固了。2011年新标准的出现能够大大提升C++开发的效率和质量。时至今日,能够基本了解C++11标准的程序员恐怕不多,而能够以新的C++风格开发实践的人更是凤毛麟角。因此,接下来几节,我们将盘点C++11的新特性。作为开幕第一篇,我们先说一些我们之前用到的但是你不知道是C++11标准的新特性。

2024-10-09 12:03:03 1588 51

原创 《数据结构》--队列【各种实现,算法推荐】

队列是一种常见的数据结构,按照先进先出(FIFO,First In First Out)的原则排列数据。也就是说,最早进入队列的元素最先被移除。:将元素添加到队列的尾部。:从队列的头部移除并返回元素。:初始化一个空队列。:返回但不移除队列的头部元素(通常称为“peek”或“front”)。:检查队列中是否还有元素。:返回队列中元素的数量。

2024-10-06 13:02:04 2758 73

原创 《数据结构》--栈【概念应用、图文并茂】

线性表的学习体系,栈(Stack-LIFO)的概念,顺序栈与链栈,单调栈专题,共享栈专题,栈的算法应用:递归专题,四则运算表达式专题(前缀表达式、后缀表达式、中缀表达式),逆波兰表达式的题解。

2024-10-06 12:40:29 1795 31

原创 异常处理【C++提升】(基本思想,重要概念,异常处理的函数机制、异常机制,栈解旋......你想要的全都有)

1)异常是一种程序控制机制,与函数机制独立和互补,函数是一种以栈结构展开的上下函数衔接的程序控制系统,异常是另一种控制结构,它依附于栈结构,却可以同时设置多个异常类型作为网捕条件,从而以类型匹配在栈机制中跳跃回馈.2)异常设计目的:栈机制是一种高度节律性控制机制,面向对象编程却要求对象之间有方向、有目的的控制传动,从一开始,异常就是冲着改变程序控制结构,以适应面向对象程序更有效地工作这个主题,而不是仅为了进行错误处理。

2024-10-05 12:22:02 1565 50

原创 类型转换【C++提升】(隐式转换、显式转换、自定义转换、转换构造函数、转换运算符重载......你想知道的全都有)

C++是一种强类型语言,其类型转换机制非常重要。类型转换使得不同数据类型之间可以相互转换,以满足程序的灵活性和可操作性。本文即将探讨的C++中的类型转换内容主要包括:基本类型转换,隐式类型转换,显式类型转换和自定义类型转换等内容

2024-10-05 11:44:53 1311 25

原创 泛型编程--模板【C++提升】(特化、类属、参数包的展开、static、模板机制、重载......你想知道的全都有)

泛型编程是C++很强大的一个特性。它主要的一个目的是增加代码复用性,增加程序的可扩展性。C++的泛型编程主要靠模板来实现,模板又被分为两类:函数模板和类模板。在学习模板前,我先提出一个问题:请写出一个相加函数。你觉得我这是在挑刺,但是事实就是这样,客户就需要你写出来一个能做任何类型都能相加的一个函数。你就无奈的去写去改去增加。为了解决反复更改增加这一问题,我们应该使用C++为我们提供的模板技术来应用到编程上。我们只需要写一段函数代码,就可以实现之前需要定义多个函数需要干的事,是不是很方便。

2024-10-04 21:00:17 1722 64

原创 基础算法--枚举

线性枚举指的是遍历某一个一维数组(顺序表)的所有元素,找到满足条件的那个元素并且返回,返回的可以是下标,也可以是元素本身。由于是遍历的,穷举了所有情况,所以一定是可以找到解的,除非问题本身无解。一些资料上也称之为暴力算法(Brute Force)线性模拟就是循环遍历的一种叫法,时间复杂度O(n),认识即可。ok~技能树成功点亮了一叶。如果在顺序表是有序的情况下,我们可以采取折半的方法去查找,这种方法称为二分枚举。查找算法--二分查找-CSDN博客这就是我们的二分法,时间复杂度为O(logn)。

2024-10-04 08:15:00 2134 18

原创 《数据结构》--链表【包含跳表概念】

不知道大家对熟悉还是陌生,我们秉着基础不牢,地动山摇的原则,会一点点的介绍链表的,毕竟链表涉及的也很重要的。在这之前,我们认识过的顺序表,它其实就是一个特殊的数组。那链表到底是什么?又有什么用呢?与顺序结构有什么不一样呢?

2024-10-03 16:51:18 2238 47

原创 C/C++进阶(一)--内存管理

更多精彩内容.....🎉❤️✨😘​​​​​​座右铭:梦想是一盏明灯,照亮我们前行的路,无论风雨多大,我们都要坚持不懈。在前面,我们学习C语言的时候,我们就提到过内存的概念,介绍了内存的分区以及各个区域负责的事情,并且给出了一些内存函数使用。本节我们主要是学习内存的管理。

2024-10-03 13:53:53 1868 28

转载 C接口的封装和设计专题【Win32环境下动态链接库(DLL)编程原理】

4. 还有一个办法,就是把dll的Settings的C/C++选项卡的Code Generation的Use Run-time liberary改成Debug Multithreaded DLL,在Release版本中改成Multithreaded DLL,就可以直接使用new和delete了。简单的DLL文件只为应用程序提供导出函数,比较复杂的DLL文件除了提供导出函数以外,还调用其它DLL文件中的函数。所谓的隐式链接是指在应用程序中不需指明DLL文件的实际存储路径,程序员不需关心DLL文件的实际装载。

2024-10-02 23:31:55 1140 39

原创 基础算法--递归算法【难点、重点】

递归是一种解决问题的策略,通过函数自我调用来分解问题。它需要明确的功能、结束条件和等价关系式,尽管递归有其优点和缺点,但在适当的情况下,它能够提供简洁和优雅的解决方案。

2024-10-02 11:26:19 1751 22

原创 基础算法--双指针【概念+图解+题解+解释】

双指针技术是一种高效且灵活的算法策略,对于多种问题都可以应用。在使用双指针时,理解问题的结构及条件是至关重要的。熟练掌握滑动窗口和快慢指针后,可以解决很多典型算法问题。

2024-10-01 19:30:06 1486 12

原创 C++模拟实现vector容器【万字模拟✨】

模拟实现vector,根据文档,我们先看一下vector有哪些成员,需要我们完成什么功能。如果你对这些功能有过初步的了解请跳过。认识(.hpp)后缀。

2024-10-01 00:39:36 1957 27

原创 【友元补充】【动态链接补充】

友元的目的是让一个函数或者类,访问另一个类中的私有成员。有缘的关键字friend是一个修饰符。友元分为友元类和友元函数1.全局函数作友元2.类作友元3.类的一个成员函数作友元好处:可以通过友元在类外访问类内的私有和受保护类型的成员坏处:破坏了类的封装性通过自行运行,我们可以看到结果如预期结果一致。当你把它看进去的时候,恭喜你,错了。此时a.num访问权限有问题。因为在这里A还没有将B的这个成员函数作为友元函数,A没有权限访问A类的私有成员。此时我们可以通过类外实现成员函数解决上述问题。

2024-09-27 23:49:24 846 35

原创 C++入门day5-面向对象编程(终)

C++面向对象基础:多态特性,virtual关键字,函数重写(覆盖),函数隐藏,类的虚函数表,虚函数表指针,动态绑定,纯虚函数和抽象类(接口),虚析构与纯虚析构,菱形继承,虚拟菱形继承,虚基类表,虚基类表指针。等各种知识全都教给你,包你满意

2024-09-27 21:20:39 1930 27

实践项目-图书馆管理系统(C#.NET)

项目简介:本项目基于Microsoft Visual Studio开发平台,SQL Server数据库,C/S开发模式。使用三层架构,完成了图书馆管理系统的设计与开发。实现了用户登录/注册,密码修改、图书管理、借阅记录查看修改、借书还书等功能。 适合人群:大学生新生或刚刚入门C#急需项目实战的小白。以及初步了解数据库,想要运用Sql语句的人群。无工作经验要求 建议:先自学基础知识,再做项目实战。遇到困难时再借鉴本项目。

2024-06-15

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

TA关注的人

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