自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++报错】c++实例类的时候提示已声明所在行数,所属文件不可访问 的解决办法

c++实例类的时候提示已声明所在行数,所属文件不可访问。

2024-04-26 13:47:20 138 17

原创 【C++报错】error C2143:语法错误:缺少“ : ”(在“<” 的前面)[ 相互引用问题 ]

若检查完后原代码中并未出现该提示的语法问题,则是存在互相引用问题。

2024-04-26 12:20:36 185 12

原创 【Linux】man手册

man手册就是linux下提供给用户查看linux语法的一本书,当用户遇到一些不懂的命令/函数的时候,不用刻意地去记住命令/函数是什么,只需要记住怎么在man手册中查询即可。

2024-04-16 23:34:33 1094 1

原创 【Linux报错】E348:No string under cursor

时直接编辑,则会出现上述的 E348 的报错。进入插入模式,即可编辑文件。

2024-04-16 23:28:32 179

原创 【Linux】进程基础铺垫(三)软件基础:系统调用接口

就好比 去银行取钱,银行不可能让你直接去银行金库(底层的所有数据信息)里面去取钱,这样会非常危险。担心群众中有坏人又必须的给用户提供服务就出现了银行柜台窗口( 也就是我们这里的 系统调用接口 ),为了方便您更便捷的取钱与咨询,每个窗口都有工作人员提供服务( lib库函数封装,通过 函数调用 来进行 系统函数接口的调用【 不同的平台 会自动调用 不同的系统函数接口 】 )。存在软件,就自然会有操作系统 对其进行管理。操作系统:1.数据方面的支持;2.功能方面的支持。

2024-04-14 21:20:39 456 5

原创 【Linux】进程基础铺垫(二)软件基础:操作系统 (Operator System)

先描述,在组织数据 有数据的结构体;硬件 也有硬件的结构体。每一个独立的硬件都有自己各自的厂商只有自己才知道自己对应的设备如何被访问。每一种硬件都有属于自己的软件(驱动程序)。【 要配合操作系统进行使用 遵守操作系统的规则,接口格式,文件格式 进行设计 】。厂商生产的时候,都会按照 系统接口 来设计 对应的驱动程序常见的驱动程序 默认已经内置通过结构性数据来编写算法。否则 一直两两 if else 的判断,效率特别特别低,通过数据结构,将数据组织起来结构体(这里是指 链表)直接遍历一遍数组。

2024-04-14 21:16:02 733 1

原创 【Linux】进程基础铺垫(一)硬件基础:冯诺依曼体结构

寄存器(速度不亚于cpu本身)内存磁盘 光盘 磁带 甚至是云盘cpu非常的快。输入/输出设备 又非常慢。所以计算机整体读取信息的速度完全取决于 速度最慢的 输入/输出设备【木桶效应:取决于短板】

2024-02-12 01:44:54 671 13

原创 【C++】string类 详细讲解【string接口、迭代器、容量相关操作、npos、string类中运算符重载、编码、Vs 和 g++ 下 string结构的说明等讲解】

C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。string类的文档介绍字符序列迭代器才是容器访问的主流形态 【通用性】迭代器都是左闭右开,begin 左闭,end 右开(最后一个位置的下一个位置)it :本质 保护迭代器指向的数据 * it不能修改constiterator it :保护的选代器本身不能修改 it不能修改。

2023-12-20 23:35:51 3421 19

原创 【Linux】如何在 Linux 终端中复制粘贴

键盘快捷键。

2023-12-20 22:51:19 4775 8

原创 【刷题日志】牛客 HJ73 计算日期到天数转换

我只把日期类中真正派上用场的成员函数写出来。

2023-12-04 17:24:51 1416 25

原创 【C++】日期类的实现

因为都只是判断,并不修改,所以都加const成员函数的一大特点:参数中含有隐藏的 this指针//隐藏的this指针out

2023-12-04 17:22:57 175 9

原创 【C++】STL简介(了解)【STL的概念,STL的历史缘由,STL六大组件、STL的重要性、以及如何学习STL、STL的缺陷的讲解】

STL ( standard template libaray - 标准模板库 ):是C++标准库 的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。

2023-12-04 17:19:47 318 15

原创 【C++】C/C++内存分布【C/C++内存管理方式详解以及new/delete、operator new/operator delete、malloc/free 三者之间的关系讲解内存泄漏问题】

【说明】栈:又叫堆栈 –非静态局部变量函数参数返回值等等临时变量,栈是向下增长的。函数建立栈帧,存储临时变量内存映射段“:是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。(Linux课程如果没学到这块,现在只需要了解一下)堆:用于程序运行时动态内存分配,堆是可以上增长的。数据段【静态区】:存储全局数据和静态数据。代码段【常量区】可执行的代码只读数据(包含 常量)常量区,修改会报错常量区存放 二进制的代码( 指令 cpu才能看的懂 )

2023-11-30 10:17:38 482 11

原创 【Linux】Linux环境基础开发工具使用(三)gcc/g++ 编译器【 Linux编译器-gcc/g++编译器的使用 选项以及介绍 、gcc编译过程的详细讲解 、函数库,动静态库的理解】

在这里涉及到一个重要的概念:函数库我们的C程序中,并没有定义“printf”的函数实现。且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现。那么,是在哪里实现 “printf”函数 的呢?最后的答案是:系统把这些函数实现都被做到名为libc.so.6的库文件中去了。在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去C语言有自己的标准库,默认给你链接到上面去了。

2023-11-30 10:03:25 678 7

原创 【Linux】Linux环境基础开发工具使用(二)vim【 Linux编辑器-vim使用与介绍 详细讲解 、vim各模式的命令合集 、sudo提权问题的讲解 以及如何提权 】

vi/vim的区别简单点来说,它们都是多模式 编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。我们课堂上,统一按照vim来进行讲解。三种模式正常模式插入模式底行模式我们一共有12种总模式,大家下来可以研究一下还有 视图模式 :可以进行代码的批量化注释vim操作打开关闭查看查询插入删除替换撤销复制等等操作。练习:当堂口头模式切换练习。

2023-11-27 12:47:29 305 16

原创 【Linux】Linux环境基础开发工具使用(一)yum【Linux 软件包管理器 yum 工具的详细讲解 以及 国内yum源推荐 、centos 7 yum源更新详细步骤、以及Linuxyum生态】

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译得到可执行程序因为linux是来源的,就会随之产生通过开源开发出来的的软件。要先挑出资源对应的源代码,且还有很多个版本,源代码在环境中 先编译,再下载到你的操作系统里。挑出来后在你的系统环境中编译,一编译就报错,还得修复bug。检查报错的过程就是叫 交叉编译。可见这个是安装软件的办法是有多麻烦,逼不得已才用这个。方法二:于是linux社区的工作者们 就已经把一些常用的软件提前编译好做 软件包(rpm包。

2023-11-25 22:40:56 347 15

原创 【Linux】权限理解【文件权限以及目录权限详解、以及umsk程序掩码知识详解】

目录的可执行权限是表示你可否在目录下执行命令。-x决定是否可以进入目录如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录即使目录仍然有-r读权限这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件-r决定是否可以进行对文件属性信息进行查看的权力而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限 ,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档也就是说-x权限 是后续操作的前提。-w。

2023-11-23 09:12:08 419 17

原创 【Linux】Linux中的基本概念

解答:一个文件没有内容,大小确实为0,但是一个文件有名称,修改日期,类型,大小。Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。文件在磁盘或硬盘上保存,也就是文件的内容和属性在磁盘硬盘上保存。(路径分隔符)分隔起来的一串由文件夹构成的字符串)字符串。文件的属性在宏观上是数据。思考1 :新建一个空文件,这个文件要不要占据磁盘空间?路径的本质:多叉树的搜素路径(快速定位)[新建一个空文件,这个文件要占据磁盘空间。文件的属性也是要保存在计算机上的。的标识指定文件的(由。

2023-11-22 09:10:43 566 36

原创 【Linux】Linux的常用基本指令

绿色颜色标识的 为语法a [ all ] 所有d [ director ] 目录f [ force ] 强制i [ ignore ] 忽略r [ recursive ] 递归q [ quit ] 退出。

2023-11-21 10:30:23 437 35

原创 【C++】模板初阶 【 深入浅出理解 模板 】

如何实现一个通用的交换函数呢?......使用函数重载虽然可以实现,但是有一下几个不好的地方:重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数代码的可维护性比较低,一个出错可能所有的重载均出错那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢?如果在C++中,也能够存在这样一个模具,通过给这个模具中 填充不同材料(类型),来获得不同材料的铸件**(即生成具体类型的代码)**,那将会节省许多头发。

2023-11-18 17:04:33 276 27

原创 【C++】类与对象 III 【 深入浅出理解 类与对象 】

临时变量具有常属性( 不可修改,要加const )。内置类型 整形和浮点形(意义非常相近,表示数字大小) 隐式互相转换int和指针 只能显式转【强制类型转换】内置类型 —隐式转换—> 自定义类型:【 类型转换都是通过临时变量做中间值,由构造函数来支持 】能支持这个转换,就看类里面有没有相对应类型的单参数/ 支持传一个参数/多参数带缺省(也可以)的半缺省( 这些都看实际具体的情况是否有同对应类型的参数条件 )构造函数支持转换。若不想让隐式类型转换发生,C++引入入新关键字explicit。

2023-11-18 17:01:23 265 14

原创 【C++】类与对象 II 【深入浅出 万字详解】

没有初始化会产生什么问题?没有初始化了, 会造成 野指针、随机值 问题初始化容易忘class Datepublic:void Init(int year, int month, int day) //函数初始化_day = day;int _month;int _day;d1.Print();Date d2;d2.Print();return 0;C语言中,每次都要初始化一下。

2023-11-18 16:59:43 161 21

原创 【C++】类与对象 I

C语言面向过程关注的是过程。分析出求解问题的步骤,通过函数调用逐步解决问题。用洗衣服来做个例子:C++基于面向对象关注的是对象。将一件事情拆分成不同的对象,靠对象之间的交互完成。整个过程主要是:人、衣服、洗衣粉、洗衣机四个对象之间交互完成的,人不需要关心洗衣机具体是如何洗衣服的,是如何甩干的。对象具体怎么完成的,那是它的事情。C语言结构体:只能定义变量由于结构体中只能定义变量,导致函数只能在结构体外定义导致数据和方法分离,所以必须带参数 才能访问在结构体中定义的变量。

2023-11-14 23:00:49 689 16

原创 【C++】C++的介绍及其发展史

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。C++是基于C语言而产生的。

2023-11-12 14:40:14 341 20

原创 如何查看反汇编(VS)

即可跳转查看反汇编。

2023-11-12 14:39:24 455 12

原创 【C++】C++入门详解 II【深入浅出 C++入门 这一篇文章就够了】

引用概念上定义一个变量的别名,指针存储一个变量地址。引用在定义时必须初始化,指针没有要求(则容易出现 野指针问题)引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个 同类型 实体没有NULL引用,但有NULL指针[ 3、4点提现:引用更安全,但也不是绝对的安全 ]在sizeof 中含义不同引用结果为引用类型的大小,但指针始终是地址空间 所占字节个数(32位平台下占4个字节)引用自加即引用的实体增加1指针自加即指针向后偏移一个类型的大小有多级指针,但是没有多级引用。

2023-11-12 14:30:01 158 7

原创 【C++】C++入门详解 I【C++入门 这一篇文章就够了】

C++ 就是在对 C语言使用中遇到的缺陷与不足的改进。C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C++学习有一定的帮助。补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用域方面、IO方面、函数方面、指针方面、宏方面等。为后续类和对象学习打基础namespace[关键字] + 命名空间的名字 + { } +( { } 里面 )命名空间的成员一般开发中是用项目名字做命名空间名。命名空间中可以定义变量。

2023-11-12 14:29:24 156 7

原创 【数据结构】排序算法复杂度 及 稳定性分析 【图文详解】

前面给大家讲述了各大排序算法的原理、思路以及实现步骤、代码码源,下面让我们来对比一下各大排序之间的算法复杂度以及稳定性分析优劣,加深我们对于各排序算法的理解,帮助我们以后能更快的在具体场景下选择出最适的排序算法。

2023-11-05 09:46:23 342 14

原创 【数据结构】深入浅出讲解计数排序【图文详解,搞懂计数排序这一篇就够了】

计数排序是一种非比较排序。计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。

2023-11-05 00:12:31 263 8

原创 【数据结构】冒泡排序 (码源实现)

冒泡排序是交换排序的其中一种。基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置。交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。

2023-11-04 16:24:20 366 13

原创 【数据结构】深入浅出理解快速排序背后的原理 以及 版本优化【万字详解】(C语言实现)

快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法。# 一、Hoare版本挖坑法是Hoare排序的一个思路上的优化:不用再考虑为什么右边先走。因为一开始的坑就在左边,那么一开始就得先从右边开始找,找比坑小的数。

2023-11-04 14:08:13 326 11

原创 【数据结构】归并排序 的递归实现与非递归实现

快速排序:前序归并排序:后序。

2023-11-04 01:18:11 522 14

原创 【报错】错误 C1004 :发现意外的文件尾

以便更方便地查找错误。您也可以尝试使用调试工具来帮助查找错误。解决这个错误的方法是,打开您的源文件,仔细。这个错误通常是由于您在源文件中。如果还是无法解决这个错误,建议。那么有发现问题出在哪吗。,并将它们补充完整。

2023-11-03 20:51:48 1260 1

原创 【数据结构】希尔排序

当插排接近有序时,会非常的高效。因此希尔研究出的希尔排序,令插排前面的数据更接近有序,就更高效。效率远超预期。

2023-11-03 01:08:21 382 10

原创 【数据结构】插入排序

排序皆以升序为例进行讲解。

2023-11-02 22:01:01 280 11

原创 【数据结构】二叉树结构

在学习二叉树之前,我们已经学习了从最开始的顺序表,到后面的栈和队列,再到堆,然后就到了我们现在的二叉树我们前面学习了堆及其结构所带来的性质堆:根据其性质(我在【数据结构】二叉树的顺序结构及实现(理论学习篇)这篇博客里详细的讲述了堆的性质,大家可通过此篇来掌握),可得到 min 或 max 值 从而解决TopK问题(此问题也在前面的链接的那篇文章中有讲述)二叉树结构真正的意义是什么?

2023-10-29 17:16:16 368 18

原创 驼峰命名法

驼峰命名法 增加代码的可读性。

2023-10-29 17:00:04 255 3

原创 【数据结构】堆排序(C代码实现 码源)

建大堆、小堆用AdjustUP和AdjustDown其实都可以,且不管是从前往后遍历还是从后往前遍历。后续有时间的时候会补充讲解,敬请关注。

2023-10-26 11:54:57 198 20

原创 【发展史】鼠标的发展史

光学鼠标是我们现在最为熟悉的了,可能我们认为光学鼠标一定是在近些年来才有的东西,但其实早在1983年,罗技为了克服机械式鼠标容易磨损的弊端,设计出了第一款光学机械鼠标,也就是光机鼠标,虽然没有抛弃轨迹球,但内部结构采用了光栅结构,大大提高了寿命。虽然引起了一波关注,但并未真正在大众面前普及,后来苹果在1983年推出了首款图形用户界面和鼠标结合使用的个人电脑Lisa以及随后推出的Macintosh个人电脑后才真正让鼠标得到了广泛的关注,也真正让世人知道了鼠标这一外设。

2023-10-25 12:49:26 892 3

原创 【Linux】Linux环境搭建

主要有三种直接安装在物理机上. 但是由于Linux 桌面使用起来非常不友好, 不推荐.使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾.★3. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器.使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问到,

2023-10-23 11:41:43 141 4

空空如也

空空如也

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

TA关注的人

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