- 博客(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
原创 输入输出--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)
2024-06-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅