- 博客(22)
- 收藏
- 关注
原创 排序算法总结
在讲解排序算法之前,我们需要先了解一下排序所谓排序,就是将数据按照我们的想法将其按照一定规律组合在一起稳定性:一组数据中的数据是否在排序前后都保持的一定的前后顺序关系,比如在排序前a[3]=2 a[5]=2,这时他们有着前后的顺序关系,在排序后,扔保持着第一个2在第二个2的后面,这种就是稳定的,废话不多说,直接上干货。
2025-05-09 11:53:20
824
原创 C++BlitzMemoryPool
我们在做项目时,不是为了做一个多厉害的东西,重要的事我们在每一个细节中学到了什么,如果要比优劣,我们是一定比不过tcmalloc的,重要的是一件事的处理方法,站在巨人的肩膀上,我们才能看的更远,所以,学习应该是贯彻我们一生的一件事,不断的通过一些新鲜的事务来开阔自己的眼界,从而使自己成长!
2025-04-19 18:07:50
925
原创 C++STL(string底层实现)
比如在没有显式定义其拷贝构造函数与赋值运算符重载时,此时编译器会生成默认的,用s1构造s2时,编译器会调用默认的拷贝构造,最终导致两个对象共同指向同一块内存空间,比如s1想更改时,s2会随之更改,更严重的是,在释放时,会造成一个空间被释放两次的情况,从而引起程序崩溃,这种拷贝方式就是浅拷贝,解决办法就是自己写一个深拷贝的拷贝构造,即我再申请一块空间,让两个对象不指向同一个空间,各玩各的。我们用一个变量来记录资源使用者的个数,当某个对象被销毁时,引用计数-1,只有当计数为0时,我们才释放资源。
2025-03-08 10:13:35
151
原创 C++模版1
我们在学习C语言的时候,想实现一个交换函数,我们该怎么实现呢?这是一个简单的交换函数,但是他只指定了一种类型,如果我们想要double类型和double类型进行交换呢?想要double类型和int类型交换呢?等等等等,是不是只能自己去实现每一种特例呢?在C语言时是这样的,但是C++发现了这个痛点,于是就有了模版!!这也是C++泛型编程的体现。
2025-03-01 09:07:55
248
原创 C++类和对象3
1.上一篇文章我们说,实现构造函数时,初始化成员变量主要使用函数体赋值,构造函数初始化还有一种方式,就是初始化列表,初始化列表的使用方式是以一个冒号开始,接着是以一个逗号分隔的数据成员列表,每一个成员变量后面跟一个放在括号中的初始值或表达式2.每个成员变量在初始化列表中只能出现一次,语法理解上初始化列表可以认为是每个成员变量定义初始化的地方3.必须放在初始化列表位置进行初始化,否则会编译报错。
2025-02-22 13:53:47
648
原创 C++类和对象2
默认成员函数就是用户没有显示实现,编译器会自动生成的成员函数,称为默认成员函数。一个类,在我们的不写的情况下,编译器会默认生成6个默认成员函数(基于C++98,后面C++11还会增加两个移动构造和移动赋值,等到讲解到C++11时再细讲)关于类的默认成员函数有两点我们应该思考:1.我们不写时,编辑器默认生成的函数行为是什么?是否满足我们的要求?2.编译器默认生成的函数不满足我们的要求时,我们需要自己实现,我们该怎么实现?构造函数:完成初始化工作析构函数:完成清理工作。
2025-02-22 11:09:20
625
原创 C++类和对象1
class为定义类的关键字,后面加上类的名字,{}中为类的主体,同时分号也不能生路省略类中的变量称为类的属性或成员变量,类中的函数成为类的方法或者成员函数为了区分成员变量,一般习惯上成员变量会加上一个特殊标识,没有硬性规定,自己怎么舒服怎么来,比如前面加_C++中struct也可以定义类,一般情况下还是用class来定义类定义在类里面的成员函数默认为inline这是一个简单的日期类,但让还并不完善,还需要我们一步步进行完善。
2025-01-18 19:50:43
816
原创 C4996 ‘scanf‘: This function or variable may be unsafe. Consider using scanf_s instead. To disable
这里给大家提供一个一劳永逸的方法,也是我最推荐的方法!1.可以使用scanf_s函数,但是这种方法我不建议,因为你的代码使用了scanf_s函数,其他编译器就不认识,代码可移植性就不好了。大家在使用vs2022时会用到scanf函数,第一次使用时会遇到一些问题这里主要是给大家提供一些解决方法。打开这个文件把上面的一句代码写到这个文件中,即可在每次创建文件时自动加入此句话,也就彻底解决了这个问题。有的电脑会提示无法保存,只要复制一份文件放在桌面再写入,然后替换原位置文件即可!
2025-01-12 19:43:49
566
原创 C语言数据类型和变量
什么是数据类型呢?C语言提供了丰富的数据类型来描述生活中的各种数据,比如使用整型类型来描述整数,字符类型来描述字符,浮点型类型描述小数。“类型”就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。
2025-01-06 11:26:04
797
原创 C语言常见概念--梦的开始(入门初讲解)
在VS上写代码,我们需要创建项目时,直接新建项目就可以,在项目中就可以添加源文件和头文件源文件(.c)头文件(.h)自行选择创建头文件还是源文件,这里要注意的时,在创建C语言文件时后缀为.c,日后我们学习C++的时候会用到.cpp。
2024-12-28 14:15:24
821
原创 算法修炼双指针_(盛水最多的容器)
仔细观察,v=h * w,我们会发现,在两个指针中数据大的不动的时候,数据小的指针向内遍历,无论怎样遍历,体积都不会比以前大,这时,我们只需在第一次两指针在原位置时记录一次体积,当两指针的数据谁小时,谁向内走一步,再记录一次体积,最后两个指针相遇时,遍历结束,最后返回出最大的体积,这里复杂度为o(n),是一种比较优秀的解法,如果阅读本文的大佬有更好的解法,欢迎交流!此题力扣上给出的难度等级为中等难度,看似很有难度,但是找到其中的规律我们就会发现非常简单。
2024-10-21 21:43:55
303
1
原创 算法修炼(双指针_判断一个数是否为快乐数)
看到这儿的时候,我们就会发现,无论哪种情况,他们都会陷入一种循环的方式,思考一下,如果大家学习过链表的话,一定会做过一道题目,判断链表是否带环,这里这道题和判断链表是否带环有异曲同工之处,这里我们不需要判断是否带环,题目已经告诉我们,他一定是带环的,我们只需判断环中的数据,为1就是快乐数。首先我们要根据题目解析一下到底什么是快乐数,这也是我们解题的核心,给定一个数,对他进行操作,将他的每一位都进行平方后相加,得到数据中的第二个数据,以此类推,进行此操作后,我们的数据会走向两个结果,1,结果为1(
2024-10-18 10:19:39
399
原创 算法修炼(双指针_复写0)
今天给大家介绍一道经典的双指针算法题目,力扣上面虽然给此题定义为简单,但是还是有很多技巧需要我们掌握的,话不多说,我们先上题目。
2024-10-18 09:01:06
285
原创 数据结构链表下——双链表
定义一个双向链表的每一个结点又三个部分组成,分为该结点所存储的数据data,该结点的next指针指向该节点的下一个结点,该结点的prev指针指向该节点的前一个结点,这里我们定义为LTNode}LTNode;
2024-07-30 15:07:09
395
原创 数据结构之顺序表
线性表是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。
2024-07-13 08:57:40
360
1
原创 要想代码写的好,分支循环少不了
C语言为一门程序化设计语言,其逻辑主要为:顺序结构,分支结构和循环结构,事实上,每个事都可以细细拆分成这三种结构,足以见其在C语言的学习中的重要性。下面给大家分享一下我自己学习分支与循环这两种结构的心得以及需要注意的地方。
2024-04-19 20:49:59
688
1
原创 初入编程世界
大家好!我是一个新入编程领域的小白,目前是一个本科在读的大学生,我对编程序,敲代码很有兴趣,日常会写一些博客,一是为了复习平常学习的内容,查漏补缺;二是可以写一些自己的心得体会,各位大佬可以互相交流,本人十分热爱成本,诚挚邀请各位深入交流!
2024-04-06 17:26:09
264
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人