自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_63179783的博客

当才华支撑不起理想时,只能安静读书。

  • 博客(65)
  • 问答 (1)
  • 收藏
  • 关注

原创 【C语言】函数递归的简单理解 &画图理解递归过程_[初阶篇 _学习专用]

递归(recursion):程序调用自身的一种编程技巧。😀如何理解函数递归:1.从调用自身层面:函数递归就是函数自己调用自己。2.从编程技巧层面:一种方法(把一个大型复杂的程序转换为一个类似的小型简单的程序),这种方法的主要思想就是把大事化小。

2022-02-07 18:24:05 38307 51

原创 MySQL索引

InnoDB存储引擎,构建主键索引,聚簇的,但是普通索引,主需要根据普通列构建B+,叶子上放的是普通数据对应记录的主键id,后续查找的时候可以通过回表的方式进行查找。当我们建立表结构的时候,如果有主键,默认mysql会为我们构建主键索引(聚簇索引和非聚簇索引)。MyISAM存储引擎,构建主键或者普通索引就是构建B+,叶子保存数据记录的地址即可。聚簇索引:用户数数据与索引数据放在一起,如InnoDB。非聚簇索引:用户数据与索引数据分离, 如MyISAAM。一张表,不仅仅只有一个索引结构。

2024-06-03 15:21:53 137

原创 【测试相关-1】

软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。大多数公司在进行软件开发的时候会把用户需求转化为软件需求,开发人员和测试人员工作的直接依据就是软件需求。用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。用户需求就是一句话,软件需求是一个文档(详细描述用户需求如何实现)测试用例是一组集合,测试环境,测试数据,预期结果,操作步骤……文字表达能力(测试用例文字写出来的,编写测试文档,BUG)一个项目是很多人写的(沟通,合作)

2024-05-22 09:36:23 331

原创 常见的两种字符集

2.UTF-8 变长编码,表示一个符号使用的字节数有变化。1.GBK(中国大陆) 使用2个字节表示一个汉字。windows简体中文版,默认字符集就是GBK。在utf8中,一个汉字,一般是三个字节。linux下默认是UTF-8。

2024-05-17 20:50:11 117

原创 模板进阶【C++】

模板参数分类类型形参与非类型形参。类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。

2024-04-26 17:33:20 360

原创 【C++】 && 【进程】第二天

此时用户再在类外自己实现一个全局的赋值运算符重载,就和编译器在类中生成的默认赋值运算符重载冲突了,故赋值运算符重载只能是类的成员函数。如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。一旦涉及到资源管理则必须要实现。

2024-04-23 10:43:10 581

原创 C++ && 数据结构 &&linux 【第一天】

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。

2024-04-19 19:26:34 876

原创 linux下gcc编译时默认是32位还是64位,怎么指定为32or64?

这时我发现,在win32和win64平台下,long都是4字节的,我记得有些情况下long是8字节,所以我就继续进行验证,我在电脑上装上了xshell,登上了服务器,试图在linux平台下找到这种情况。然后再vim编辑器下写了同样的代码,准备使用gcc进行编译时想到:linux下怎么指定32or64位平台下编译代码?因为需要配置一些东西,这篇文章中都有提到,感兴趣的话可以点进去看一下这篇文章。然后找到了long打印为8字节的情况。

2024-02-27 14:00:51 929

原创 【LeetCode】二维数组中的查找(时间复杂度O(n+m),不遍历每个元素)

最坏的情况就是找n*m 次,此时时间复杂度为O(n*m),时间复杂度较高;2.行和列是不能一直+或者-下去的,所以有一个限定条件:行

2023-07-23 08:30:05 1309 30

原创 【剑指offer】二进制中1的个数

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为).)。

2023-07-23 08:18:07 512 23

原创 【网络编程】网络套接字&udp通用服务器和客户端

基于IPv4的socket网络编程,sockaddr_in中的成员struct in_addr sin_addr表示32位的IP地址,但是我们通常用点分十进制的字符串表示IP地址,以下函数可以在字符串表示和in_addr表示之间进行转换;内存中的多字节数据相比于内存地址有大端和小端之分,磁盘文件中的多字节数据相比于文件中的偏移地址也有大端小端之分,网络数据流同样有大端和小端之分,那么如何定义网络数据流的地址呢?存储在内存中的数据有大端和小端之分,低位存储在低地址的是小端,低位存储在高地址的是大端。

2023-07-22 15:57:15 747

原创 【C语言】基础题目->求1-10的阶乘之和的两种方法

所以我们在求10的阶乘之和时可以直接使用一个数的阶乘ret *=(ret+1);先求出各个数的阶乘,然后相加。(两个嵌套的for循环)然后在相加求和sum += ret;

2023-07-22 09:32:57 5670

原创 【C语言】为什么我们打印一个字符数组的时候会出现乱码?

在C语言中字符串 " bit "后面是带有 " \0 "的,也就是 " bit '\0' ",所以打印 bit;arr2中只包含三个字符 'b' 'i' 't' ,而printf函数打印时遇到 '\0'才会停止,此时就。,而由于arr2后面的内存空间都是没有进行初始化的,所以会打印像 “烫烫烫”等乱码。arr3中字符数组中包含 ' \0 ',所以打印和arr1相同,同为 bit;这里arr1和arr3的打印时正常的,但是为什么打印的arr2会出现乱码呢?

2023-07-22 09:15:36 401 4

原创 【0基础学习python】顺序结构+条件语句+循环结构(文章后面有人生重开模拟器的相关逻辑和简单实现)

条件语句能够表达“如果……否则……”这样的语义,这构成了计算机中基础的逻辑判定,条件语句也叫分支语句,表示接下来的逻辑可能有几种走向。一个典型的例子:如果丘处机没有路过牛家村,那么金兵不会死在郭, 杨两家手上郭, 杨两家就不会流亡北方郭夫人就不会去到大漠, 完颜洪烈就不会遇到包惜弱郭靖就不会和江南七怪救了铁木真蒙古就不会统一蒙古铁骑就不会西征欧洲就不会出现火药, 也就不会出现文艺复兴, 大航海.大炮就不会从欧洲传到日本, 日本得不到统一完颜洪烈就不会全力战, 金国内乱。

2023-07-21 21:39:55 153 6

原创 【C++】深层次了解继承,从基础概念到复杂菱形继承问题(文章结尾有菱形继承常见面试题)

定义格式以学生(Student)类为例,继承Person类;Person类是父类,也称作基类;Student是子类,也称作派生类。三种继承方式和三种访问限定符子类的三种继承方式:public、protected、private父类中三种访问限定符:public、protected、private(1).父类中的public成员,公有继承public:int _age;{};s1.name = "阿飞";s1.show();

2023-07-21 11:13:03 144 11

原创 【0编程基础入门python】python基础知识+简单代码编写(内附自测题,掌握可入职美团)

a = 10创建变量的语句非常简单,其中a为变量名,当我们创建很多个变量的时候,就可以用名字来进行区分= 为赋值运算符,表示把 = 右侧的数据存入 = 左侧的空间中注意:变量的名字要遵守一定的规则硬性规则(务必遵守)变量名由数字、字母、下划线构成数字不能作为开头变量名不能和“关键字”重复变量名大小写敏感,num和Num是两个不同的变量名软性规则(建议遵守)变量名使用有描述的单词来表示,尽量表达出变量的作用一个变量名可以由多个单词构成,长一点没关系,但是含义一定要清晰。

2023-07-20 14:36:45 229 6

原创 【网络编程】网络基础,局域网和广域网&IP地址&MAC地址

1、广域网:是连接局域网或城域网计算机通信的远程网。2、局域网:是形成的一个区域网络,分布地区范围有限。所谓 “局域网” 和 “广域网” 只是一个相对的概念;比如, 一个广域网也可以看成是一个较大的局域网。

2023-07-10 17:01:45 493

原创 new/delete和malloc/free的区别

在C/C++面试中,两种区别是经常被问到的,第一个是指针和引用的区别;第二个就是我们文章题目所提到的-new/delete和malloc/free的区别。想要回答出来这类问题,首先要清楚他们的使用,下面我们以new/malloc如何使用为例,来更好的理解这类问题。2.malloc申请空间之后返回的是一个void。

2023-07-10 11:25:59 228

原创 【Java】使用Scanner类实现键盘输入

不同的场景需要不同的代码,像定义年龄的时候,固然可以直接定义int age=18;但是这种定义之后age并不能满足所有的场景,像我们在网上完善信息的时候,有的时候需要我们手动的从键盘上输入,所以需要设计键盘输入的方式来实现。这里以nextInt()为例,输入一个int类型的数据;使用next()输入一个String类的数据,还有很多其他类型在这里就不一一列举了。不同的数据要使用不同的类型来接收,这里同样是以int类型为例,其他类型也是类似的,大家可以对比记忆,使用起来更能得心应手。3.使用变量接收数据。

2023-05-22 23:01:08 3195 7

原创 【MySQL】库的操作

上一篇中我们讲到了数据库基础,下面我们接着上篇文章继续看一下字符集和校验规则;在上篇文章中我们使用了windows下的MySQL环境,那么本篇文章的话,会用Linux下的MySQL来给大家进行演示,因为在Linux下方便我们查看数据库以及数据库的结果比较,至于没有Linux环境的朋友们,这里给大家推荐一篇文章来配置一下(安装虚拟机或者购买服务器之后可以查看上一篇文章中给大家推荐的Linux下安装MySQL文章进行安装。

2023-05-16 19:58:20 409 1

原创 【MySQL】数据库基础

论语·魏灵公》:“工欲善其事必先利其器。”我们学习数据库也是一样的,要想学好前提一定要有可以上手的工具,不然很难达到使用时随心所欲的地步。MySQL的安装在网上有很多教程,相信很多人已经在我们的linux或windows中安装过MySQL;但是也肯定有人并没有安装过,所以在这里我分享两篇文章,方便大家安装,以便于直接能够上手文章中的操作。

2023-05-15 10:14:12 1273 8

原创 阻塞队列的实现源码

消费者生产者模型,阻塞队列的简单实现

2023-03-22 14:42:45 133 1

原创 定长内存池的实现

解决的是为了避免命名污染,不要直接using namespace std;只展开常用的。申请空间时有两种情况:剩余的_remanBytes数小于sizeof(T),memory剩下的字节直接丢掉,从内存中重新申请大块空间。还回来一个对象需要链接到自由链表,也是有两种情况:自由链表:管理还回来的内存块。每个内存块的前4个字节/8个字节存储下一个内存块的地址,最后一块地址存储为nullptr。那么要如何进行设计?1.使用sizeof(int)获取指针大小进行判断。

2023-03-12 21:44:19 204 2

原创 系统调用——文件操作相关函数

使用read函数时open函数的第二个参数flags需要改变,O_WRONLY需要改为O_RDONLY或者O_RDWR;这样才能在文件中读取数据。write时要注意打开方式,打开时可以是O_APPEND,也可以是O_TRUNC。执行程序之后,就在当前路径下创建了一个权限为rw-rw-rw的log.txt。打开一个文件,也可能创建一个文件,返回文件描述符。写一段程序,清空文件中的数据。

2023-03-10 15:48:15 350 2

原创 C++中的类型转换

static_cast、reinterpret_cast、const_cast、dynamic_cast

2023-03-09 08:39:36 337 5

原创 【C++】仿函数、lambda表达式、包装器

一般而 言,我们用它可以把一个原本接收N个参数的函数fn,通过绑定一些参数,返回一个接收M个参数的新函数。arg_list中的参数可能包含形如_n的名字,其中n是一个整数,这些参数是“占位符”,表示。象中参数的位置:_1为newCallable的第一个参数,_2为第二个参数,以此类推。C++中有sort函数,实现在algorithm中,库中的sort函数默认是升序的;仿函数就是类中的成员函数,这个成员函数可以让对象模仿函数调用的行为。函数重载的显示调用、重载的隐式调用、类名()仿函数调用。

2023-02-26 14:21:35 681 2

原创 【C++】类和对象

/成员变量+成员函数C中虽然可以使用struct来定义类,但是C用户更偏向于使用class来定义类。1.声明和定义全放在类中像我们前面写的Stack类,声明和定义都在class Stack{}中完成。成员函数在类内定义,如果符合inline的条件,编译器会将其当做内联函数处理。2.声明和定义分离//f.hint val;private://f.cpp{}{}在f.cpp中,注意限定类域(如果不写类域,无法找到对应的声明);

2023-02-23 20:02:12 315 7

原创 【C++】智能指针

使用指针的时候在遇到异常的时候可能导致函数中的释放语句未执行,但是面向对象中的类却不用考虑这种情况,因为实例化出的对象出了作用域会自动调用析构函数释放空间。C++11中又出现了几种智能指针,像unique_ptr是不支持拷贝的,shared_ptr则是使用计数的方法来防止空间的多次释放。SmartPtr并未考虑拷贝的问题,auto_ptr考虑到了拷贝的问题,只不过拷贝的方法有点像是在抢劫(所以基本上都不用它)。实际上,auto_ptr在拷贝的时候实现了资源的转移,转移之后被拷贝的对象就不能再被使用。

2023-02-19 20:45:49 407

原创 【C++】string类常用函数接口

这在反向迭代器中其实也是有的,在C++标准库中既有一般的迭代器,也有const迭代器,const迭代器就是适合const对象使用的;第三个参数是拷贝的字符个数,默认的是npos;npos是一个无符号的-1,补码为全1,是一个非常大的数,也就是说如果我们不传拷贝的长度的话,那么就是从拷贝位置开始,知道字符串结束。s.begin()返回的是第一个字符的位置,s.end()返回的是最后一个字符的下一个位置,所以可以通过s.begin()、s.end()对string对象进行遍历。是不能修改的,只能进行访问。

2022-12-27 11:52:41 599 4

原创 【C语言】常见字符函数和字符串函数

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数。字符串已经'\0'作为结束标志,strlen函数返回的是在字符串中'\0'前面出现的字符个数(不包含'\0')。参数指向的字符串必须以'\0'结束。注意函数的返回值为size_t,是无符号整形(易错点)。}

2022-12-22 11:08:51 386 17

原创 【数据结构】栈和队列的实现

栈:一种特殊的线性表,。,另一端称为栈底。栈中的元素遵循的原则。栈的叫做进栈/压栈/入栈,在栈顶进行操作。栈的叫做出栈,出栈操作同样在栈顶进行。

2022-12-22 11:05:43 728

原创 【C语言】指针进阶_函数指针_函数指针数组_指向函数指针数组的指针_回调函数

目录1.函数指针1.1函数指针的定义方式1.2两段有趣的代码(自主探究)2.函数指针数组2.1函数指针数组的定义方式2.2函数数组指针的用途:转移表 2.3计算机的两种实现方式3.指向函数指针数组的指针3.1指向函数指针数组4.回调函数4.1举个例子 4.2自主探究【前言】可能已经有不少小伙伴知道指针初阶的内容,并且掌握了一部分指针的内容,但是对于指针这个硬核知识我们了解的越深越好,了解的越多,对我们以后的写代码的能力帮助也就越大,本篇文章大致分为四部分内容:函数指针、函数指针数组、指向函数指针数组的指针以

2022-12-22 11:01:04 978 43

原创 【C语言】函数的声明_函数定义_函数调用_函数递归 [函数的基本使用]

在前面我们已经学习了初识C语言部分和分支循环语句,接下来我们开始函数部分的学习,函数在我们编程的时候是经常使用的,虽然之前接触的不是很多,但是其实函数的学习并不是很困难,只要稳扎稳打,还是很容易学的通透的,像三子棋、扫雷游戏中都用到了函数,那么函数是什么呢?接下来我们开始函数的学习。如果库函数能干所有的事情,那还要程序员干什么?所以更加重要的是自定义函数。自定义函数和库函数一样,都有函数名,返回类型和函数参数。不一样的是这些都是我们自己来设计,这给程序员一个很大的发挥空间。

2022-12-22 10:54:45 7232 9

原创 【C++】泛型编程 _函数模板和类模板的基本使用

如何实现一个通用的交换函数?这在C语言中是无法实现的,但是C++却可以。使用函数重载虽然可以实现,但是有一些问题:只要交换的类型不同,就需要增加对应的函数;重载的函数只是类型不同,代码复用率比较低;代码可维护性较低,一个函数出错所有重载都会出错。解决这些问题的简单方法就是使用泛型编程。像古代的活字印刷术,只要有了一个模板,就可以反复的造轮子;C++中的模板可以分为函数模板和类模板。

2022-12-19 16:26:02 500 9

原创 【C语言】编译链接 _Linux下操作 _#define详解 [进阶篇 _复习总结]

define定义标识符还是很容易理解的,但是在写的时候需要注意:后面不要加分号,加分号可能会出现语法错误。return 0;}这样写在编译的时候就会报错:if语句中没有{}时只能有一条语句,NUM带上分号之后if语句中是两条语句,出现了语法错误。在定义宏的时候后面不要加分号。#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义宏(define macro)。

2022-12-18 18:58:39 590 15

转载 CSDN如何快速转载别人的文章

  对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。  因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿笑)。   我们首先打开要转载的博客,然后鼠标右键就会出现下面的菜单:   最后特别要注意的是,我们发表的时候一定要

2022-12-10 19:19:06 127

原创 C语言文件操作——打开 &关闭 &顺序读写 &随机读写

在打开一个文件的时候,会创建一个文件信息区,而文件指针指向的内容就是文件信息区。文件信息区中存储的到底是什么内容的,我们可以在VS2013中查看一下文件信息区的内容(不同编译器下有所差异)。

2022-11-26 21:50:33 884 43

原创 【C语言】初阶指针的简单使用 _指针运算 &指针和数组的关系[初阶篇 _学习专用]

之前并没有接触过指针的朋友们看到后可能是一头雾水,根本不知道从哪里去理解;下面我们就通过一些场景慢慢的去理解:试想一下:如果你要给你的好朋友寄过去一些好吃的,然而你并不知道地址,这时你也许就会很懊恼;但如果你知道了你的好朋友的地址,你就可以通过快递把这些好吃的送到你朋友的身边。把我们日常所说的地址类比到计算机,其实那些地址对应的就是计算机内存中的内存单元编号,也就是我们所说的指针。比如说一栋宿舍楼,你在303号房间,你的朋友在605号房间,那么你就需要通过楼层和门牌号来找到你朋友所在的位置。

2022-11-21 21:35:04 1439 31

原创 【数据结构】线性表 _顺序表 &链表的增删查改 _[细节分析+代码实现]

我们实现的链表存储的数据是int类型,所以对int进行重命名,如果存储的数据不是int类型,把int改成其他的类型即可。当容量为100时,满了之后扩容为200,但是我们只需要再插入5个数据,后面就没有数据插入了,就浪费了95个数据空间。我们在这里主要学习的是带头双向循环链表,虽然它看起来复杂,但是实现起来并不复杂,而且相比于其他类型有很大的优势。还有一个需要去注意的点是pos是数组下标,是有范围的,一定要注意数组的越界问题。如果传的是结构体,那么形参是实参的一份临时拷贝,形参的改变不会影响实参。

2022-11-20 11:57:06 1348 35

原创 基础的C语言编程题,喊你快来巩固一下

C语言的基础编程题目,如果这些题你都能准确快速的写出来,那你的C语言功底还是很扎实的,希望我的文章对你有所帮助,欢迎👍点赞 ,📝评论,🌟关注,⭐️收藏 。

2022-11-18 08:00:00 1287 11

空空如也

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

TA关注的人

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