- 博客(16)
- 收藏
- 关注
原创 8.linux开发工具
vim是我们在系统中安装好的软件,在默认情况下会去当前用户家目录里面找 .vimrc的文件,没有vim就是默认行为,有的话就会读取.vimrc里面的配置文件就行配置。所以我们可以自己在.vimrc里面添加自己想要的要求从而配置自己的vim。在root权限(非root看不到)下 vim /etc/sudoers。du-ach *:查看当前目录和所有子目录大小。ls -l,会显示成字节大小,ls-lh会以KB,MB显示更直观。如果是q退出,不会创建创建文件,以wd退出会创建。du-sh :查看当前目录总大小。
2026-04-20 22:58:23
152
原创 7.Linux1权限-开发工具
本文摘要:Linux系统共享目录权限管理可通过root创建公共目录并设置粘滞位(chmod +t)实现,既允许其他用户读写文件又防止删除。软件安装推荐使用包管理器(如yum)自动解决依赖问题,通过-y参数跳过确认步骤。Linux软件生态以开源社区为核心,国内镜像源(如阿里云)解决了国外源访问慢的问题,提供base稳定软件和epel扩展软件源。系统内置的下载链接会根据操作系统类型自动匹配对应社区的软件版本。
2026-04-19 21:50:52
310
3
原创 3.Linux基本指令2
用于输出文本或变量内容到标准输出的命令。显示文件的开头部分内容,默认显示前 10 行。tail查看当前日期和时间,生成时间戳。
2026-04-18 21:48:07
762
11
原创 4.5 Linux指令和权限
用于在文件或标准输入中匹配指定模式(正则表达式或字符串),并输出匹配的行grep [选项] "模式" [文件...]-i-v-nzip 命令用于将文件或目录压缩为 ZIP 格式的压缩包:递归压缩目录及其子目录unzip 命令用于解压 ZIP 格式的压缩文件。压缩文件:tar -czvf 压缩包名称 文件-c表示创建归档,-v显示详细过程,-f指定归档文件名,-z启用 gzip 压缩。解压文件:tar -xzvf 压缩包名称。
2026-04-18 21:47:05
390
4
原创 6.linux权限
显示用户所属的用户组,它可以帮助了解当前用户或指定用户的组成员身份。对指令进行提权第一次sudo之后10~15分钟的登录期间不用再输密码;默认情况下,普通账号是无法进行sudo的。(白名单)更改文件或目录所有权的命令。
2026-04-18 21:46:26
367
7
原创 Linux 基本指令
本文介绍了Linux常用文件操作命令及基本概念。主要命令包括:ls(显示文件列表,-l查看详情,-a显示隐藏文件)、pwd(显示当前目录)、cd(切换目录)、stat(查看文件元数据)、mkdir/touch(创建目录/文件)、tree(树状展示)、rm(删除文件,-r递归删除)、cp(复制文件)。关键知识点:1)Linux文件包含内容和属性;2)命令本质是可执行文件;3)路径分隔符为"/";4)空目录仍占用空间。文章通过具体示例演示了命令用法,并对比了Windows与Linux的文件系
2026-04-16 21:36:58
859
25
原创 C++智能指针和内存泄漏
本文系统介绍了C++智能指针的核心概念与应用。首先分析了传统指针在异常处理时容易导致内存泄漏的问题,阐述了RAII(资源获取即初始化)设计思想,指出智能指针通过对象生命周期管理资源。详细讲解了标准库提供的auto_ptr(已废弃)、unique_ptr(独占所有权)、shared_ptr(共享所有权)和weak_ptr(解决循环引用)四种智能指针的特性与适用场景。通过代码示例展示了智能指针的实现原理,重点剖析了shared_ptr的引用计数机制。文章还探讨了智能指针与内存泄漏的关系,比较了C++11与Boo
2026-02-28 19:40:34
809
36
原创 C++异常处理机制全解析
本文介绍了C++异常处理机制的核心概念和使用方法。异常处理通过throw抛出对象、catch捕获异常实现问题检测与处理的分离,相比C语言的错误码更灵活。文章详细讲解了异常抛出与捕获的匹配规则、栈展开过程,并通过继承体系示例展示了如何设计异常类。此外还探讨了异常重新抛出、异常安全问题及C++11的noexcept规范。最后指出标准库提供了exception基类及what()虚函数作为异常体系基础。异常处理能有效分离错误检测与处理逻辑,是C++重要的错误管理机制。
2026-02-27 18:16:41
934
15
原创 C++11新特性全解析->新的类功能,lambda,包装器
本文介绍了C++11中的新特性:1)新增默认移动构造和移动赋值功能,可通过default/delete控制默认函数生成;2)override和final关键字用于虚函数重写控制;3)lambda表达式语法及应用,包括捕捉列表规则和底层仿函数实现原理;4)function包装器统一处理函数指针、仿函数和lambda等可调用对象;5)bind函数适配器用于参数调整和绑定。这些特性提升了代码灵活性,简化了STL操作,增强了面向对象编程能力。
2026-02-26 17:35:47
903
15
原创 C++11右值引用与完美转发及可变参数模板详解
本文主要介绍了C++11中的右值分类、引用折叠、完美转发和可变参数模板等特性。首先将右值细分为纯右值和将亡值,并解释了引用折叠规则:右值引用的右值引用折叠成右值引用,其他组合均折叠成左值引用。然后阐述了完美转发的实现原理,通过forward函数模板保持参数属性。最后详细讲解了可变参数模板的基本语法、包扩展机制及其在STL容器emplace系列接口中的应用,展示了如何通过参数包直接在容器空间构造对象。这些特性显著提升了C++的灵活性和效率。
2026-02-25 15:38:06
1109
15
原创 C++11新特性:右值引用与移动语义详解
本文摘要:C++11引入列表初始化和右值引用两大特性。列表初始化通过{}语法统一对象初始化方式,并引入std::initializer_list支持容器多值初始化。右值引用通过区分左值/右值实现移动语义,允许"窃取"临时对象资源,减少拷贝开销。移动构造和移动赋值能优化函数返回值处理,与编译器优化共同提升性能。左值引用保持参数传递效率,右值引用则解决特定场景的深拷贝问题,二者结合使C++在保持高效的同时提供更灵活的编程方式。
2026-02-24 20:55:51
667
11
原创 红黑树:高效平衡的奥秘
本文介绍了红黑树的基本概念与特性。红黑树是一种自平衡二叉搜索树,通过节点着色规则(根黑、叶黑、红节点子必黑)和路径黑节点数相等来保持平衡,确保操作时间复杂度为O(logn)。文章对比了红黑树与AVL树在平衡标准和性能上的差异,详细阐述了插入操作的四种情况处理(单旋、双旋及变色),并提供了平衡检测方法。通过枚举颜色类型、检查红色节点连续性以及路径黑节点数一致性来验证红黑树的合法性。最后给出了红黑树的C++实现框架,包括节点结构和插入操作的核心逻辑。
2026-02-10 19:39:23
600
17
原创 揭秘AVL树:平衡二叉树的终极指南
AVL树是一种高度平衡的二叉搜索树,通过平衡因子(右子树高度减左子树高度)确保左右子树高度差不超过1。其核心操作包括:1)插入时动态更新平衡因子,通过四种旋转(左单旋、右单旋、左右双旋、右左双旋)维持平衡;2)旋转需保持搜索树特性,同时降低子树高度。AVL树将时间复杂度优化至O(logN),相比普通二叉搜索树有本质提升。实现时需要处理平衡因子更新、旋转调整及平衡检测等关键环节。
2026-02-10 14:16:04
799
13
原创 取地址运算符重载,构造函数,类型转换,static成员,友元,内部类,匿名对象
3.尽量使用初始化列表去初始化,因为不在初始化列表初始化的成员也会通过其初始化,如果这个成员变量在声明时给了缺省值那么在初始化时就会用这个缺省值,要是没有缺省值并且没有在初始化列表初始化对于内置类型是否初始化取决于编译器,对于自定义类型会调用它的默认构造函数,要是没有就会报错。b.引用成员变量,const成员变量,没有默认构造的类类型变量,必须在初始化列表初始化,否则会编译报错。2.const实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员函数进行修改。
2025-12-26 17:50:38
479
3
原创 构造函数,析构函数,拷贝构造函数
这3个函数是对于刚开始学习c++非常容易搞混淆的3个函数,下面让我们仔细去分析一下它们的相同点和不同点构造函数虽说有构造两字,但它不是去构建对象即开空间创建对象,因为我们常用的局部对象是栈帧创建时,空间就已经开好了。构造函数主要作用是在实例化对象时初始化对象。对比我们以前学习的c语言中它会自动调用,很好的代替了Stack(栈),Date(日期类)中初始化init的功能。1.函数名和类名相同。2.无返回值(void也不要)3.对象在实例化时会自动调用。4.构造函数可以重载(多种初始化形式)
2025-11-30 16:53:14
990
14
原创 堆排序和希尔排序
希尔排序通过先将数组分为gap组,然后先通过预排序的方式,让元素接近有序,最后gap==1时,就成了直接插入排序。本质上堆排序时是通过向上调整和向下调整,先将数组元素调整成满足堆的性质,然后再通过向下调整让arr[0]拿到最小或最大元素,再将其交换到数组后面去,再通过循环依次拿到次大或者次小元素,再往后交换。堆中的元素按照二叉树的顺序存储方式存储在一个一维数组中,所以堆其实是一种特殊的二叉树,具有二叉树的性质,所以我们可以通过二叉树的一些特点和性质来实现堆的排序。大堆大的在前面,交换后大的在后面即升序。
2025-11-24 21:57:33
283
18
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅