自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 什么是进程,如何管理进程

运行起来的程序 ----> 进行会根据task_struct属性 被OS调度器进行调度,运行。村中100人,有20个低保名额,最后调查,真正低保名额只有十个,因为有十个人不在村里。proc全程process,里面的以数字命名的文件实际上就是进程的。一个父进程可有多个子进程,但一个子进程只有一个父进程。:查看进程,当终止了程序之后,接着查看会看到。--> 本质就是在系统中启动了一个进程.在一个终端中运行程序,另一个进行查看。目录下可以查看到所有进程的属性信息,本身也是一个进程,刚好查看。

2025-05-06 17:29:15 950

原创 C数据结构--顺序表

顺序表是一种数据结构,在介绍顺序表之前我们需要知道什么是数据结构,在生活中不借助排队的方式来管理客呼,会导致客户就餐感受差、等餐时间长、餐厅营业混乱等 情况。同理,程序中如果不对数据进行管理,可能会导致数据丢失、操作数据困难、野指针等情况。通过数据结构,能够有效将数据组织和管理在⼀起。按照我们的方式任意对数据进行增删改查等操作。一、什么是数据结构数据结构是由“数据”和“结构”两词组合而来。什么是数据?

2025-04-14 23:07:09 716

原创 Linux-gcc/g++

语言的诞生必须要编译器,所以汇编的编译器是二进制写的,然后使用基础的二进制编译器,又写了一个更为新进的汇编编译器。编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高。有的小伙伴使用的是云服务器,默认是不没有安装c/c++的静态库的,所以使用。在最初,计算机使用的是二进制编程,当时还没有编译器,直到要发明汇编语言。接着c语言要出现,则必须要一个编译器,c语言的编译器是汇编语言写的。此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.GNU 调试器可利用该信息。

2024-09-22 12:55:54 810

原创 Linux新增用户,对用户提权

新建用户之后,可能会出现指令用不了的情况,是因为该用户不在白名单中。普通用户对该文件没有任何权限,所以要用root用户。进行创建用户,名字最好不用和指令名称相同。我们需要切换到root用户下,打开。在创建完用户时最好使用。进行对用户密码的修改.

2024-09-19 20:44:05 364

原创 Linux-vim使用

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x windowmac oswindows。我们课堂上,统一按照vim来进行讲解。三种模式正常模式插入模式底行模式我们一共有12种总模式,大家下来可以研究一下vim操作打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。底行模式下输入[help]可以查看帮助。

2024-09-19 20:22:26 976

原创 特殊类设计

在实际项目中,往往会设计特殊的类,对这个类的默认成员函数有一定的要求。

2024-08-12 14:44:14 1061

原创 C++智能指针

在了解了C++异常之后,异常的出现,是会导致内存泄漏的,当一个函数开辟了堆空间,在释放之前直接抛出异常,当前栈帧中没有异常捕获,则会跳到上一个栈中。这时就会发送内存泄漏。本章我们通过智能指针来解决这个问题。什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害。

2024-08-09 15:27:13 849

原创 C++异常

实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了.// 服务器开发中通常使用的异常继承体系public:,_id(id){}protected:int _id;public:{}

2024-08-06 11:19:55 955

原创 Linux权限与Shell中命令运行原理

在了解了Linux下的基本指令之后,再来了解在Linux中命令是如何运行的,已经了解一个文件的权限和属性。

2024-08-04 15:43:27 1110

原创 C++11特性(二)

介绍了C++11前半部分的特性之后,紧接着介绍后面的内容。第一次接触可变参数是在c语言使用printf时的可变参数。C++11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板,相比C++98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数无疑是一个巨大的改进。然而由于可变模版参数比较抽象,使用起来需要一定的技巧,所以这块还是比较晦涩的。我们学习基本的使用方法。// Args是一个模板参数包,args是一个函数形参参数包。

2024-08-03 13:13:00 1084

原创 C++11特性(一)

相比于C++98/03C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。相比较而言,C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率,公司实际项目开发中也用得比较多,所以我们要作为一个重点去学习。c++11官网: https://en.cppreference.com/w/cpp/11左值是一个表示数据的表达式。

2024-07-31 15:51:38 708

原创 map和set习题

的特性,set具有去重的特性,我们遍历节点的指针,如果节点的指针插入失败说明有重复的节点,这时说明链表带环,失败的节点即入口点。1、实际上我们在最开始,使用map统计时就是按照单词字典序排序的。由于sort的底层是自省排序(即快排),是一种不稳定的排序。有了kv关系,那么拷贝链表的random就可以很容易的找到它要指向的节点。题目中较麻烦的就是,处理不同的单词,相同的频率,要按照字典序排序。思路:使用kv关系,建立原节点和拷贝节点的kv关系。要深拷贝一个链表,比较简单,但是在该题目中,要处理。

2024-07-20 22:52:55 956 1

原创 C++的map和set介绍

vectorlist是序列式容器。本章介绍的是关联式容器map和set.它们的底层是用红黑树实现的。关于怎么使用这里俩个容器,实际上和string一样。我们只介绍要注意的地方。set文档介绍set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。

2024-07-20 22:51:07 862 1

原创 C++二叉搜索树

树结构是一种重要的数据结构。树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

2024-07-20 22:49:13 1298 1

原创 初识Linux

Linux操作系统是基于Unix操作系统的设计原则和理念,但是它是一个完全独立的操作系统。Linux操作系统被广泛用于服务器、个人电脑、移动设备和嵌入式系统等领域。Linux操作系统具有很多优点,比如稳定性、安全性、灵活性和免费使用等。Linux操作系统也拥有一个庞大的社区,这个社区不断地为Linux系统添加新的功能和更新,使得Linux系统变得更加强大和适应各种不同的需求。Linux操作系统也支持各种不同的应用程序和工具,使得用户可以根据自己的需求来定制自己的系统。

2024-07-14 18:38:05 1226 1

原创 C++中的多态

在C++继承中我们了解到,许多事物都有相同的属性,C++中可以通过继承来复用代码保持原有类特性的基础上进行扩展.呈现了面向对象程序设计的层次结构。而今天我们需要从事物的不同点出发,了解多态,多种形态。多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。那么在继承中要构成多态还有两个条件必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写(覆盖)

2024-07-11 15:43:46 886

原创 C++中的继承

在类和对象(上)中我们提到了类的第一个特性:封装。将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。在本章内容里我们将要介绍类和对象中的第二个特性:继承。想骑手、商家、用户这样的对象都有共同属性:许多成员都是重复的,那么是否有一种方法可以使得重复的代码和为一块呢?答案就是类的继承。下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类。基类private成员在派生类中无论以什么方式继承都是不可见的。这里的。

2024-07-09 23:59:03 1109

原创 C++模板进阶

在模板初阶我们了解了什么是模板,如何使用模板。函数模板和类模板都是模板。模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性。

2024-07-06 17:15:46 758

原创 C++栈、队列

栈和队列是俩种特殊的容器,C++在实现栈和队列时,复用了vector和list容器。本章内容我们将介绍和模拟实现stack(栈)和queue(队列)。以及做几道关于stack和queue的题。加深对stack和queue的理解。stack的文档介绍kw=stack翻译:1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。

2024-06-03 11:12:14 912 1

原创 list的简单模拟实现

list是带头双向循环链表。是序列容器,允许在序列中的任何位置进行常数时间的插入和删除操作,并且可以在两个方向上进行迭代。list被实现为双向链表;双向链表可以将其包含的每个元素存储在不同且不相关的存储位置中。通过将每个元素与其前面的元素和后面的元素的链接关联起来,可以在内部保持排序。

2024-06-02 16:22:24 1076 2

原创 C++模板使用

C语言阶段要实现不同类型的交换函数swap,需要重复写很多代码,需要造很多的轮子。为了提高程序员写代码的效率,C++出现了泛型编程的概念,模板应运而生。class 类模板名// 类内成员定义模板在C++中更多应用类模板。如果不用模板,我们想要使用俩个不一样的栈stack存储俩个不同类型的数据时,使用typedef对类型进行更名,只能对一个类型使用。public:perror("malloc申请空间失败");return;_size = 0;//扩容++_size;

2024-05-27 23:29:39 852

原创 C++内存管理

C++兼容C语言,C++的内存管理也是和C语言类似的。C语言使用malloc、realloc、calloc、free来进行动态内存管理,C++使用new、delete来进行。C++相比C语言在内存管理上更加方便和安全,但也需要注意内存泄漏和内存溢出等问题。在实际开发中,建议尽量使用C++的内存管理方式,以提高代码的可靠性和可维护性。注意:在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与free不会。

2024-05-26 22:44:25 1118

原创 C++vector的简单模拟实现

vector的使用方法和string很类似,但是string设计的接口太多vector。我们实现vector的简单模板版本。由于模板的小问题,我们在使用模板时最好声明和定义在同一个文件。

2024-05-25 20:32:47 859 1

原创 C++--String类

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。网上有句话说:“不懂STL,不要说你会C++”。STL是C++中的优秀作品,有了它的陪伴,许多底层的数据结构以及算法都不需要自己重新造轮子,站在前人的肩膀上,健步如飞的快速开发。在学习类时离不开接口的查询,所以我们通过文档来介绍string:stringstring实际上是个类模板basic_string<template>

2024-05-13 22:23:12 735 5

原创 C++类和对象(下)

在类和对象(中)我们了解了类中的六个默认成员函数,以及用类实现了日期的计算。本章我们再从构造函数出发,介绍static成员、友元函数、友元类、以及再次理解封装,最后通过几个题目来进行实践。一、初始化列表。

2024-05-05 16:05:43 897 6

原创 C++类和对象(中)下

在初识C++中我们简要简介了一下引用作函数返回值的作用,在类和对象(中)上中我们介绍了3个类的默认成员函数(默认构造、析构函数、拷贝构造函数).本章我们详细理解引用作返回值的作用,已经后三个默认成员函数(赋值重载函数、取地址及const取地址重载函数),并且简要介绍一下友元和

2024-04-24 00:34:42 988 7

原创 C语言中的编译和链接

在我们平常的写代码时,我们很少关注代码编译和链接的过程,因为通常的开发环境都是集成开发环境IDE),像vs一样编译和链接都是一步完成。在c语言中,我们在.c的文件中写代码,代码是怎么经过vs的处理使得代码可以运行呢?(怎么变成.exe运行程序呢?),下面我们来仔细探究一下代码是如何被编译和链接的,如何生成可以运行的程序的。

2024-04-13 13:37:26 916 3

原创 C++类和对象(中)上

了解了类的基本概念之后,如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。一、

2024-04-12 00:10:04 756 5

原创 C++类和对象(上)

C和C++的区别到底在哪呢?本章内容就带你认识一下,C++的独到之处。类和对象是在C++中提出的,生活中,我们在使用电脑时,不需要关心主机内部是如何实现的,而只要知道开关机,键盘输入,显示器,usb接口等,我们和计算机进行交互,完成日常事务。事实上电脑正真工作的却是CPU、显卡、内存等一些硬件。C++中的类也是如此。C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。比如:之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;

2024-04-10 13:19:35 1022 2

原创 初入C++道门

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。1982年,BjarneStroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。C++的道路很长,修炼的道路很长所以要路漫漫其修远兮。

2024-04-01 20:58:34 917 5

原创 解释指针知识(二)-- 指针运算、野指针、assert断言、指针的使用

在文章(一)中我们发现介绍了指针基本概念和指针简单加减整数的结果,以及const修饰指针变量,知道了指针就是用来存放对象的地址的。在这篇文章中我们将要介绍指针的运算、指针的使用和野指针以及避免野指针的措施。

2024-01-14 10:44:47 255 1

原创 C语言中的文件(二)

在(一)文章中我们介绍了,文件的基本概念,知道了在程序设计中我们一般分俩种文件:程序文件和数据文件,然后介绍了文件名。同时我们重点介绍了数据文件中的文本文件的操作。学会了打开文件和关闭文件,以及各种顺序读写的函数。在本篇文章中我们要介绍文件的随机读写。

2023-12-24 15:19:43 856 1

原创 C语言中的文件(一)

在使用电脑写程序时,你知道数据是储存在哪的吗?我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失 了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用文件。一、文件介绍磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度度来分类的)。函数名功能适⽤于fgetc字符输⼊函数所有输⼊流fputc字符输出函数所有输出流fgets文本行输⼊函数所有输⼊流fputs文本行输出函数所有输出流fscanf。

2023-12-20 14:43:22 1208 4

原创 自定义类型:结构体struct

结构体是一种自定义类型。我们可以在里面定义多种不同的变量。假设我想描述学生,描述一本书,单⼀的内置类型是不行的。描述⼀个学生需要 名字、年龄、学号、身高、体重等,C语⾔为了解决这个问 题,增加了结构体这种自定义的数据类型,让程序员可以自己创造适合的类型.结构体的声明struct tag描述一个学生struct Stu//名字int age;//年龄//性别char id[5];//学号//分号不能丢struct Stu//名字int age;//年龄//性别//学号。

2023-12-15 20:36:36 956 4

原创 整数与浮点数在内存中的存储

数字有不同的类型,有int整形,float单精度浮点型和double双精度浮点型,那他们在内存中存储的时候到底是怎么样来存储的呢?下面我们将了解整数与浮点数的存储方式。在了解之前我们要知道一些关于进制的知识。其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分 为⼤端字节序存储和⼩端字节序存储,下⾯是具体的概念:⼤端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,⽽数据的⾼位字节内容,保存 在内存的低地址处。⼩端(存储)模式:是指数据的低位字节。

2023-12-06 14:01:38 1032 2

原创 字符函数和字符串函数(一)

在处理字符与字符串时,为了方便,c语言提供了很多库函数,下面我们介绍库函数。当然在开始之前我们得知道字符和字符串,关于这些基础的知识我们给出一些简单的方面的知识。

2023-11-29 21:48:19 972 1

原创 解释指针知识(一)--指针变量、内存、地址与const

在我们生活中,我们在找寻一个房间时我们一般都需要知道他在几楼第几个房间,这样非常麻烦,于是我们就弄了个门牌号比如402,这样我们一看就知道在哪;那在c语言中是否有类似门牌号这样的东西呢?答案是有的,在c语言中我们数据就是以类似门牌号的方式来存储数据的,可以理解成我们所说的地址,那我们怎么来存储这个地址呢?接下来让我来介绍指针。我写这篇文章为了让读者更好的理解指针,希望读者可以对我的文章做出评价以及对需要更改的不足的地方进行修改,同时复习自己所学到的指针知识。希望读者进行反思,总解,复盘。

2023-11-26 09:46:38 1163 1

原创 C语言的扫雷游戏

该文章将介绍用c语言编程扫雷游戏的思路,以及如何实现扫雷。要想实现扫雷游戏,我们需要一定的c语言知识储备,并且对新手而言,耐心与练习是必不可少的。所以我将尽量把我对扫雷游戏的理解全盘托出。希望读者能够理解我对扫雷游戏的实现思路。

2023-11-08 21:57:13 183 2

原创 c语言的分支与循环语句(一)

在生活中,我们对某一件事进行判断,通过判断我们可以做出不同的选择,不同的选择就会有不同的结果。但程序员不会总执行同样的处理,而是通过条件判断的结果选择性地执行某种处理的情况事非常多见的,而这就是我们将要介绍的分支语句。人生就是日复一日地不断重复,就有相同的事情,也有相似的事情,却无论如何也无法回到最初。要想在生活的每一刻都能有新的发现,恐怕只是一个美好的愿望。因此我们还会介绍循环语句。

2023-10-24 22:46:03 140 2

原创 我和编程的开始

当然每天的代码练习不能少,每天提交一次gitee。2.大一下半年把数据结构,c++学好,掌握好编程能力,学完之后不忘记复习。4.大二下半年根据自己的能力考虑是否考研计算机,进行择校选择。第一次接触编程是从哔哩哔哩上所得知,从那时起对编程有了兴趣。1.在大一把c语言学好,每天打代码,并且提交至gitee。我是个喜好探索未知的男青年,来自湖南省永州,目前大一。3.在学好编程的同时把大学各科目都过了,数学英语为重。5.时刻提醒自己要学好编程,每天记录编程学习经历。学好编程之后找实习,毕业以后进大厂。

2023-10-11 21:58:54 116 10

空空如也

空空如也

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

TA关注的人

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