自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vector 认识及使用

先创建一个vector<vector<int>>类型的对象ss 用numRows个vector<int>进行初始化 这里没有传第二个参数 相当于每一个vector<int> 类型的对象都进行了默认的构造函数进行初始化 然后第一层for循环让每一层都保留i个数 没有的用1来填充 这样就相当于每一行的首位都初始化为了1。ve相当于下图的第二个里面存着10个vector<int>类型的值 里面的每一个对象相当于一个上面的全部 里面的每一个都存在10个int类型的值。

2025-08-14 21:25:47 700

原创 优选算法---双指针 题目及算法分析 代码实现

这里的双指针并不是真的必须是指针 只是用到这种思想 可能是数组的下标或者是数值。

2025-08-13 22:20:21 871

原创 string类 手动实现

c++委员会在std命名空间中定义了string类 在类中实现了许多对外的很多接口之前试过了string类接口的使用 接下来自己来手动实现一下于这样的string类 并不是真的和库中的一样 只是大概实现一些功能 加深一下对其底层的理解首先为了不和std中的string类冲突 我们自己定义一个命名空间xx在里面实现string类。

2025-08-09 21:36:36 857

原创 c++ string类使用

大概如下图结构然后在string类中写了非常多的成员函数 运算符重载等对外实现了大量功能的接口。

2025-08-07 15:56:43 961

原创 linux 基础指令理解和知识点

mkdir -p ------使得可以创建连续的目录 如在后面加 q/w/e/r 相当于在当前目录创建了叫q的目录 q里有了叫w的目录 w里有了叫e的目录 e里有了叫r的目录。cp 文件A 文件B(可以是当前目录下或者其他目录下的) ----拷贝A到B中 如果B为空就会创建一个新的B在把A的内容放进去 不能拷贝目录。从当前文件夹访问上一级的或更高的需要用绝对路径的方式或者用到.. ../..的方式 下一级或更低级的可以用绝对路径的方式。

2025-08-05 22:48:11 853

原创 c++模版初阶

在c++中有了模版为什么要有模版呢如果要完成交换两个数的函数 在c中没有函数重载每一个类型都需要重写一个函数且函数名不能相同在c++中函数可以重载之后解决了函数名的问题 交换函数可以用一个函数名来实现 在使用的时候不管什么类型直接用这个函数名就可以了 但是在实现功能的时候 同样的逻辑每一种类型都需要写一个函数 函数里面的内容基本都相似 这样就感觉很麻烦1.代码复用率很低2.如果里面一个函数的逻辑出问题了 说明其他几个类型的也出问题了 要改起来也很麻烦所有在c++中引入了模板。

2025-08-01 22:02:12 436

原创 内存管理 动态空间申请

在c和c++中的内存区域主要有四个区域 栈取 堆取 数据段(静态区) 代码段(常量区)其中栈取主要存储着局部变量(函数参数等)和临时变量(返回值等)他们会随着函数栈帧的创建而创建随着其消失而消失堆取主要存储的就是动态申请的空间 如c中malloc calloc realloc这些所申请的空间 而在c++中动态申请空间用到的new静态区存储的是全局变量 和static所修饰的变量 他们的生命周期全局常量区存储的就是const所修饰的。

2025-07-31 20:49:56 545

原创 类和对象补充

以下程序的结果是什么a1和a2都在初始化列表中显示写了 对于a1显然它的值为传过来的形参1 那么a2呢 它的值是a1的值 那么是a1的1 还是a1声明时候的2其实都不是 a2的结果为随机值或者0(取决于编译器)这就需要最后一点了。

2025-07-29 19:58:35 584

原创 c++类和对象

我们不写构造函数编译器会自动调用它默认的无参的构造函数 只要我们写一个构造函数 这个默认的就不会调用了 会调用我们自己写的的那我们写一个带参的构造函数 就没有无参的构造函数了 此时构造函数就必须传参数 我们创建对象时候就必须给它传参数c++有两种类型 内置类型(基本类型)和⾃定义类型。内置类型就是提供的原⽣数据类型, 如:int/char/double/指针等,⾃定义类型就是我们使⽤class/struct等关键字自己定义的类型。

2025-07-26 20:19:19 840

原创 从c到 c++ 入门基础

首先 c++是兼容c的 也就是在c++中c的知识都可以使用第一个c++程序。

2025-07-24 19:50:23 520

原创 常见排序算法逻辑实现及他们空间复杂度时间复杂度稳定性的比较

要弄明白各个排序的逻辑 首先我们要弄清楚单趟排序的逻辑 再根据此进行控制。

2025-07-23 18:14:01 696

原创 二叉树顺序表实现的堆 堆排序TopK问题 及二叉树链表实现

堆是用顺序表实现二叉树的一种结构 前提需要为完全二叉树堆分为小堆和大堆小堆的根节点是最小的 在结构中任一子节点都小于它的根节点大堆的根节点是最大的 在结构中任一子节点都大于它的根节点二叉树的结构图只是我们想象出来的 真正的存储结构其实就是数据在数组中 通过在数组中的关系实现我们想象的结构按图中的序号表示。

2025-07-21 12:00:22 1011

原创 队列和栈的互相实现 顺序表链表实现循环队列

因为每一次删数据都需要整体移动到另一个空白队列中 我们每次不知道哪一个队列为空需要找到那个不为空的队列 可以使用假设法 假设一个为空一个非空如果不对就交换 这样就知道哪个队列为空哪个非空了 就可以对其进行操作 也可以用if else找到哪一个为空但这样if 和else中都需要写相应类似重复的内容 最后要记得把修改后的队列给回原来的两个队列谁空都无所谓 在之前我们只是把n-1个元素移动和在原来的队列删除这个队列还有一个元素也要记得删除。

2025-07-06 16:08:08 524

原创 栈和队列特点及实现 顺序表链表优劣

基于此 我们知道实现顺序表用到的数组是地址上连续的当需要处理某数据时就会进行上面的把该数据及其邻近地址的数据一起加载到缓存中 这样下一次再次进行处理的时候 要处理的数据直接就在缓存当中(缓存命中)就节省了时间 而链表的数据其地址并不连续 但仍然会进行上面的把数据及其邻近地址的数据一起加载到缓存中这一过程 每一次的缓存命中率很小 效果非常微弱 而内存也是有容量的 内存会被这些基本不会用到的数据所占了 就会影响那些在缓存会被频繁访问的数据造成了缓存污染。

2025-07-04 18:35:10 746

原创 链表带坏问题

证明:不管进环前的节点数为奇数或者偶数 快指针是慢指针的三倍速度 其路程也一定是其三倍 则在慢指针刚进环时候 快指针相当于进环后又走了二倍的慢指针走的距离 这个距离为偶数 如果环为偶数的情况下快指针走完这个距离那么距离慢指针的距离一定是个偶数 即环为偶数慢指针刚进环慢指针与快指针距离为奇数这种情况就不存在即不相遇的情况不存在。如果在慢指针刚进入链表时候快指针到慢指针的距离(该距离为快指针逼近慢指针的距离)为偶数的话那么显然两者距离最终会变为0即相遇了 如果距离为奇数的话最终快指针会超过慢指针一个距离。

2025-07-01 13:50:53 495

空空如也

空空如也

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

TA关注的人

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