自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++特性 多态

多态是一个继承关系下的类对象,去调用同一函数,产生不同的行为。Student继承了person。Person对象买全价票,Student对象买半价票。public://虚函数 类成员函数前加virtualcout << "全价买票" << endl;public:cout << "半价买票" << endl;// 这里可以看到虽然都是Person指针Ptr在调用BuyTicket// 但是跟ptr没关系,而是由ptr指向的对象决定的int main()fun(p1);

2025-11-12 11:52:48 721

原创 类与对象1

定义在。

2025-10-11 12:18:20 808

原创 进程优先级与切换调度

进程顺序。

2026-01-09 20:06:51 248

原创 进程的状态

进程状态就是task_struct内的一个整数。

2026-01-09 11:17:53 231

原创 进程的理解

计算机(笔记本,服务器)大部分都遵循冯诺依曼体系。:键盘,鼠标,话筒,摄像头,网卡,磁盘(其实就是外存):显示器,磁盘,网卡,打印机.....:运算器➕控制器存储器就是内存。

2026-01-08 11:56:35 599

原创 智能指针喵喵喵

保障了资源的正常释放,避免了资源泄露问题。智能指针除了要满足RAII思路,还要方便访问资源,所以还会像迭代器重载一些操作符operator*/operator->/operator[],方便访问资源。

2025-12-19 21:34:17 658

原创 异常那些不为人知的秘密

异常处理机制 允许程序中独立开发的部分在运行时就出现的问题 进行通信 并做出相应的处理,异常使得我们将问题的检测与解决问题的过程分开,程序的一部分负责检测问题的出现,然后解决问题的任务传递给程序的另一部分,检测环节问题处理模块的不需要所有细节。C语言主要通过错误码的形式处理错误,错误码本质就是对错误信息进行分类编号,拿到错误码以后还要去查询错误信息,比较麻烦。异常时抛出一个对象,这个对象可以包含更全面的各种信息。程序出现问题时,我们通过抛出(throw)一个对象来引发异常,该对象当前的类型以及调用链决定

2025-12-17 18:44:39 898

原创 C++11那些不为人知的特性

lambda表达式本质是一个匿名函数对象,和普通函数不同的是他可以定义在函数内部。在语法层面是来讲是没有类型的,用 auto或者模板参数定义的对象来接收。格式[ ]捕捉列表,出现在lambda函数的开始位置,编译器根据捕捉列表判断后面的表达式是否为lambda函数,捕捉列表可以捕捉变量供lambda函数使用,捕捉列表可以传值捕捉和传引用捕捉。捕捉列表为空也不可以忽略。( )参数列表,传参 ,如果不需要参数的传递,则可以连()一起省略-> 返回值类型,用追踪返回类型形式。

2025-12-17 08:43:15 997

原创 哈希表的实现

哈希又称散列,。数据按某种形式,散乱排列。,查找时根据,进行快速查找。

2025-12-07 22:30:09 977

原创 用红黑树封装map和set

map和set的,只是一个存放Key,一个存放Key/Value,关于其插入,,这里尝试用。

2025-11-30 11:10:09 838

原创 红黑树实现

红黑树是一颗,他的每个节点,可以是红色或者黑色。通过,红黑树。

2025-11-27 20:47:30 1054 1

原创 AVL[特殊字符]的理解

AVL树是1AVL是一颗。2它的,且左右子树的高度差绝对值不超过1。AVL树是一颗高度的平衡二叉搜索树,通过高度差去控制平衡。AVL树整体结点数量和分布和完全二叉搜索树类似,。

2025-11-22 19:50:27 617

原创 二叉搜索树

又叫二叉排序树,有两种情况2是一颗满足以下性质的树如果左子树不为空,则左子树所有节点小于根节点如果右子树不为空,则右子树所有节点小于根节点左右子树也分别为二叉搜索树。multimap/multiset/map/set底层都为二叉搜索树,其中map/set不可以插入相同的值,multimap/multiset可以插入相同的值。

2025-11-20 18:42:09 677

原创 C++ 三大特性 继承

/派生类 基类public://学习protected:int _stuid;//学号。

2025-11-09 08:08:36 686

原创 Stack_Queue

stack是一种先进后出的数据结构,只要能实现的线性结构都可以作为stack的底层容器,如vector或者list。queue是一种先进后出的数据结构,只要能实现的线性结构度可以作为queue的底层容器,如list。选择deque作为stack或者queue的底层容器,主要是:1stack和queue只需要。2在stack元素增长时,;queue中的元素增长时,;

2025-10-30 09:31:47 329

原创 STL_string的模拟实现

【代码】STL_string的模拟实现。

2025-10-29 19:40:40 113

原创 C++模板进阶

文件中。

2025-10-29 15:33:27 293

原创 list的模拟实现

【代码】list的模拟实现。

2025-10-28 11:21:17 115

原创 STL_List简单使用

2push_back 与emplace的比较。1简单应用 push_back。vector与list效率对比。insert与erase。

2025-10-28 11:19:17 217

原创 STL_string的接口初步了解

【代码】STL_string的接口初步了解。

2025-10-24 20:00:00 278

原创 vector习题

https://leetcode.cn/problems/single-number/https://leetcode.cn/problems/pascals-triangle/description/https://leetcode.cn/problems/remove-duplicates-from-sorted-array/description/https://leetcode.cn/problems/single-number-ii/description/https://leetcode.cn/

2025-10-22 19:16:44 320

原创 vector容器及其实现

reserveresize插入接口和删除接口可以存放内置类型和自定义类型具体实现

2025-10-22 11:41:45 228

原创 模板简介初阶

模板不建议定义和声明到两个文件中.h和.cpp会出现链接错误。int main()//类模板都是显示实例化//调用operater new 开空间然后调用 构造函数开数组//delete p1;//调用析构函数 清理数组资源 然后调用operator delete删除空间return 0;

2025-10-21 10:21:01 387

原创 内存管理C++

栈又叫堆栈局部变量(非静态)、函数参数、返回值等等,栈是向下增长的。堆用于程序运行时动态分配内存堆可以向上增长。数据段全局数据和静态数据。代码段可执行代码和只读常量。C语言的动态内存管理方式malloc calloc reallocclass Apublic::_a1(a1),_a2(a2)if (this!return 0;//{

2025-10-20 21:21:10 899

原创 类和对象3

实现构造函数中初始化成员变量时,主要使用函数体内赋值,构造函数初始化还有一种方式是,就是初始化列表。初始化列表的使用方式 以一个冒号开头,接着以一个逗号分割的数据成员列表,每个“成员变量”后面跟初始值或者表达式。每个成员变量都只能在初始化列表出现一次,语法理解上初始化列表是每个成员变量定义初始化的地方。引用成员变量,const成员变量,没有默认构造的类 类型变量,必须放在初始化列表进行初始化,否则会编译报错。C++11支持在成员变量声明的位置给缺省值,这个缺省值主要是给没有显示在初始化列表成员使用的。

2025-10-18 14:34:30 602

原创 类与对象2

如果一个构造函数的第一个参数是自身类类型的引用,且任何其他参数都有默认值,这个构造函数也叫做拷贝构造函数,也就是说拷贝构造是一个特殊的构造函数。拷贝构造函数 用一个已经存在的对象去初始化另一个对象class Datapublic://无参构造函数//Data()//{//}//全缺省构造函数_day = day;//半缺省构造函数//{//}//结构体C语言也会完成拷贝~Data()private:int _year;int _month;

2025-10-13 10:15:09 876

原创 构造函数和初始化列表的关系

因为使用构造函数一定不可避免的会调用自定义类型成员变量的默认构造,然而使用初始化列表可以避免使用默认构造函数,直接调用该成员变量的拷贝构造class Time //声明一个Time类,类中有三个成员变量,和一个有参构造函数public:private:int _hour;

2025-10-02 21:11:35 199

原创 编译和链接

摘要: 程序从源代码到执行需经历翻译和运行两个环境。翻译环境包括编译(预处理、词法语法分析、语义分析、汇编)和链接(地址分配、符号决议)过程,将.c文件转换为可执行程序。运行环境则负责程序载入内存、执行main函数、管理堆栈/静态内存以及程序终止。其中链接阶段需解决多文件间的符号引用问题,通过重定位修正函数和变量的地址。整个过程涉及编译器、汇编器和链接器的协同工作,最终生成可在特定操作系统或独立环境中运行的可执行文件。(149字)

2025-10-02 08:55:03 818

原创 C语言复习数组

数组里面存放多个(至少一个 不能为0)相同类型的数据。

2025-10-01 20:22:35 295

原创 C++入门基础知识

1.namespace后面跟命名空间名,{命名空间的成员变量},{}里面是变量,函数,类型。2.namespace的本质是定义出一个域,这个域于全局域互相独立,所以就解决了变量冲突3.C++中有全局域,局部域,命名空间域,类域。域影响的是编译时,语法查找一个变量/函数/类型出处的逻辑,有了域的隔离,命名冲突问题也就解决了。局部域和全局域不仅影响语法查找逻辑,还影响变量的生命周期。命名空间域和类域不影响变量的生命周期。4.namespace只可以在全局定义,也可以嵌套定义。

2025-09-25 17:35:18 692

原创 栈和队列初步认识

【代码】栈和队列初步认识。

2025-09-06 16:12:21 102

原创 链表经典考察题

返回相遇点或者第一个入环节点。

2025-09-01 11:06:37 177

原创 初步认识顺序表

顺序表是线性表的一种,其底层是数组,进行一系列封装,实现增删查改,包装成顺序表。线性表包括顺序表,链表,栈,队列等等。是n个具有相同元素的有限序列。线性表在物理上存储时,以数组或链表形式存储。物理结构上不一定连续,逻辑结构一定连续。

2025-08-31 15:54:31 199

原创 初认识链表

【链表操作摘要】链表是一种非连续存储结构,通过指针连接节点。本文介绍了链表的基本操作实现:1)节点定义与打印;2)尾插/头插操作;3)尾删/头删处理;4)查找节点;5)指定位置插入/删除节点(包括前后位置处理);6)链表销毁。关键点在于动态内存管理和指针操作,特别注意处理空链表和边界情况。代码展示了完整的链表操作函数集,包括开辟节点、遍历链表和指针重定向等核心操作细节。

2025-08-28 12:34:41 138

原创 比特杰哥第21讲:动态内存管理

包含柔性数组成员的结构⽤malloc()函数进⾏内存的动态分配,并且分配的内存应该⼤于结构的⼤ ⼩,以适应柔性数组的预期⼤⼩。• sizeof返回的这种结构⼤⼩不包括柔性数组的内存。• 结构中的柔性数组成员前⾯必须⾄少⼀个其他成员。4.4 使⽤free释放⼀块动态开辟内存的⼀部分。4.3 对⾮动态开辟内存使⽤free释放。4.2 对动态开辟空间的越界访问。2. malloc和free。2. malloc和free。4. 常⻅的动态内存的错误。4. 常⻅的动态内存的错误。6.2 柔性数组的使⽤。

2024-04-21 09:22:47 280 1

原创 指针杰哥第二讲

• &数组名,这⾥的数组名表⽰整个数组,取出的是整个数组的地址(整个数组的地址和数组⾸元素 的地址是有区别的) 除此之外,任何地⽅使⽤数组名,数组名都表⽰⾸元素的地址。• sizeof(数组名),sizeof中单独放数组名,这⾥的数组名表⽰整个数组,计算的是整个数组的⼤⼩, 单位是字节。数组元素的访问在编译器处理的时候,也是转换成⾸元素的地址+偏移 量求出元素的地址,然后解引⽤来访问的。我们发现数组名和数组⾸元素的地址打印出的结果⼀模⼀样,数组名就是数组⾸元素(第⼀个元素)的地 址。

2024-03-14 13:03:42 410 1

原创 第11讲:深⼊理解指针(1)

如果明确知道指针指向哪⾥就直接赋值地址,如果不知道指针应该指向哪⾥,可以给指针赋值NULL. NULL 是C语⾔中定义的⼀个标识符常量,值是0,0也是地址,这个地址是⽆法使⽤的,读写该地址 会报错。• const如果放在*的右边,修饰的是指针变量本⾝,保证了指针变量的内容不能修改,但是指针指 向的内容,可以通过指针改变。• const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。• 注意指针变量的⼤⼩和类型是⽆关的,只要指针类型的变量,在相同的平台下,⼤⼩都是相同的。

2024-03-13 22:50:19 1514

原创 函数递归gr

在C语⾔中每⼀次函数调⽤,都要需要为本次函数调⽤在栈区申请⼀块内存空间来保存函数调⽤期间 的各种局部变量的值,这块空间被称为运⾏时堆栈,或者函数栈帧。函数不返回,函数对应的栈帧空间就⼀直占⽤,所以如果函数调⽤中存在递归调⽤的话,每⼀次递归 函数调⽤都会开辟属于⾃⼰的栈帧空间,直到函数递归不再继续,开始回归,才逐层释放栈帧空间。所以如果采⽤函数递归的⽅式完成代码,递归层次太深,就会浪费太多的栈帧空间,也可能引起栈溢 出(stackoverflow)的问题。递归中的递就是递推的意思,归就是回归。

2024-02-22 12:29:39 498 1

原创 VS调试技巧

当程序员写完代码,测试再对程序进⾏测试,直到程序的质量符合交付给⽤⼾ 使⽤的标准,这个时候就会设置为 release ,编译产⽣的就是 release 版本的可执⾏程序,这个 版本是⽤⼾使⽤的,⽆需包含调试信息等。程序员在写代码的时候,需要经常性的调试代码,就将这⾥设置为 debug ,这样编译产⽣的是 debug 版本的可执⾏程序,其中包含调试信息,是可以直接调试的。arr数组的地址整体是⼩ 于i的地址。9.3 运⾏时错误 运⾏时错误,是千变万化的,需要借助调试,逐步定位问题,调试解决的是运⾏时问题。

2024-02-20 11:42:08 1785

原创 扫雷游戏郭蓉

printf("你被炸死了\n");printf("输入错误,重新输入");printf("输入的坐标非法\n");printf("----扫雷游戏-----\n");printf("请输入坐标* *: ");printf("游戏结束");printf("恭喜你排雷成功");printf("请输入>");2随机的生成东西使用随机数的生成rand。//⽣成随机的坐标,布置雷。3函数分开写的好出,便于随时调用。

2024-02-20 10:06:59 377

base.apk

base.apk

2023-11-17

空空如也

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

TA关注的人

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