自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木木没有跶

努力中...

  • 博客(62)
  • 收藏
  • 关注

原创 实现字符串库函数

【代码】实现字符串库函数。

2024-08-30 15:41:42 344

原创 Linux入门——11 线程

在创建进程的时候会有虚拟内存,虚拟内存里面决定了进程能够看到的资源(代码区,堆区,栈区。。。),我们通过地址空间和页表就能访问代码所需要的资源,一个进程是可以把自己的划分出一部分,让另一样执行流去执行,如fork(),让父子进程分别执行不同的代码块。也可以发生写实拷贝。先在我们让再次创建的进程不再有独立的地址空间,而是共享父进程的地址空间,就相当于一个房间,有5,6个人一起通过窗户看,每个人都可以通过同一个窗户看,让每一个进程访问我代码中的一部分,访问一部分资源。

2024-08-23 16:14:05 592

原创 Linux入门——10 信号

我们写的代码都是在用户态的,在用户态的时候,我们可能会访问两种资源,1是操作系统自身的资源,2是硬件资源。无论是那种资源都是在OS之下的,我们要通过OS提供的接口。通过这些接口,我们称为系统调用。(你毕业称为教师(内核态),到你的毕业小学当老师,曾经一些你小学时候(用户态)进不了的地方,现在可以进去了,你依旧是你,但身份发生了变化,所以权限级别发生了变化)实际执行系统调用的“人”,是你的进程,身份是内核。往往系统调用比较费时间一些,尽量;尽量避免频繁调用系统调用。

2024-08-23 15:32:12 943

原创 C++入门——17异常

异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。如果有一个块抛出一个异常,捕获异常的方法会使用 try 和 catch 关键字。try 块中放置可能抛出异常的代码,try 块中的代码被称为保护代码。有可能单个的catch不能完全处理一个异常,在进行一些校正处理以后,希望再交给更外层的调用链函数来处理,catch则可以通过重新抛出将异常传递给更上层的函数进行处理。

2024-08-22 23:23:03 670

原创 Linux入门——09 共享内存

OS内的每个进程都会有自己的内核结构(task_struct)和虚拟地址空间,通过页表与物理内存进程映射。如果让两个不同的进程共享内存,首先就是在内存中申请一块空间(共享内存),然后将建立好的内存映射到进程的虚拟地址空间上(进程和共享内存挂接)。两个内存都映射统一块物理地址空间,就是看到了统一块资源,就建立了通讯。如果未来不想通讯了,就取消进程与内存的映射关系(去关联),释放内存。概念:通过让不同内存,看到同一内存块的方式:共享内存。

2024-08-22 23:16:13 578

原创 Linux入门——08 进程间通讯——管道

1.管道的生命周期进程就是进程的周期2.管道可以用来进行具有血缘关系的进程之间的进程通信,常用于父子通讯。3.管道是面向字节流的(网络会讲)4.半双工 ------ 单向通讯(特殊情况)5.互斥与同步机制--------对共享资源进行保护的方案。

2024-08-22 22:55:53 1031

原创 Linux入门——07 动静态库&软硬连接

这有一个100米跑道,我在50 米的位置,在跑道30 米的位置有一颗树,我的位置可以表示为在跑道50 米的位置,也可以表示为树前20米的位置,但是当这个跑道延长到200米的时候,我还能说在树前20米的位置。未来我可以给对方提供.o(方法的实现),.h(都有什么方法)--------》库的本质就是:.o文件的集合。库文件,多个.o----》成一个文件 ------》整个文件就称为库------》所采用的打包工具和打包方式不同称为动静态库。创建普通文件的硬链接的引用计数为1,创建目录的引用计数为2.

2024-08-22 17:41:45 776

原创 Linux入门——06 基础IO

当前进程执行是磁盘路径下的哪一个程序当前进程的工作目录------》当前进程。

2024-08-22 17:08:06 965

原创 Linux入门——05 进程

能做,先做还是后做的问题。

2024-08-22 15:46:11 571

原创 Linux入门——04 gdb & git

gbd命令行调试默认情况下,GDB无法对现在发布的程序进行调试。

2024-08-21 17:50:44 456

原创 Linux入门——04 gcc/g++ & Makefile

变量定义的两种方式简单方式 vs 递归展开方式简单方式VAR:=var•变量使用$(VAR)•用”$”则用”$$”来表示•类似于shellCC= gcc递归展开方式ugh =Huh?$(foo)的值为?Huh?• 优点:它可以向后引用变量• 缺点: 不能对该变量进行任何扩展,例如CFLAGS= $(CFLAGS) -O 会造成死循环用?=定义变量FOO?= barFOO是?

2024-08-21 17:39:00 482

原创 Linux入门——03Vim操作

什么是IDE:集成开发环境而vim是功能强大,多模式的编辑器。

2024-08-21 17:17:53 420

原创 Linux入门——02文件与权限

系统默认配置权限掩码umask 权限掩码,凡是在umask中出现,都必须在起始权限中去掉010。d为文件类型,第一个rwx对拥有者的权限,第二个rwx对所属组的权限,第三个是对其他人的权限。linux有很多用户,我们需要在一个公共的目录下,进行临时的文件的操作(增删查改)最终权限 0664 110 110 100 ----> rw- rw- r--最终权限= 起始权限&(~umask) //起始权限按位与(~umask)- :普通文件(源文件,库文件,可执行程序,文档压缩包)

2024-08-21 16:58:25 718

原创 Linux入门——01常用命令

用户无法直接给操作系统指令,需要经过shell,才能让操作系统明白。如果用户对操作系统非法操作,会有shell保护。shell本身也是一个进程,当然,用户给shell的指令,shell会派生出子进程进行执行,不会影响shell本身进程。

2024-08-21 15:43:29 758

原创 Linux入门—— 00 Linux vs Windows

Linux 和 Windows 是两种主流的操作系统,多方面不同。

2024-08-20 17:56:20 840

原创 C++入门——21特殊的类

设置成私有:如果只声明没有设置成private,用户自己如果在类外定义了,就可以不能禁止拷贝了只声明不定义:不定义是因为该函数根本不会调用,定义了其实也没有什么意义,不写反而还简单,而且如果定义了就不会防止成员函数内部拷贝了。// ...private://...public:private:// 1.只声明,不实现。因为实现可能会很麻烦,而本身不需要// 2.声明成私有。

2024-08-20 17:55:15 207

原创 C++入门——20C++的IO流

"流"(stream)是一种用于处理数据输入和输出的抽象概念。流可以将数据看作是从一个源(输入流)流向目标(输出流)的连续字节序列。C++ 标准库通过一系列类来支持流的概念,尤其是iostream和fstream库,分别用于标准输入输出和文件输入输出。

2024-08-20 17:19:36 507

原创 C++入门——19C++的类型转换

C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。1. 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译失败2. 显式类型转化:需要用户自己处理。

2024-08-20 16:52:30 317

原创 C++入门——18智能指针

内存泄露:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。

2024-08-20 16:40:20 823

原创 C++入门——16C++11新特性

1. 左值引用只能引用左值,不能引用右值。2. 但是const左值引用既可引用左值,也可引用右值。

2024-08-20 16:04:32 896

原创 C++入门——15unordered系列关联容器

在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到log_2N,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行很少的比较次数就能够将元素找到,因此在C++11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同。

2024-08-19 22:31:33 147

原创 C++入门——14树型关联容器

/ it 指向 3 后面的元素(一个越界位置)// it 指向 3 后面的元素(一个越界位置)// it 指向 1 前面的元素(一个越界位置)// it 指向 1 前面的元素(一个越界位置)// 使用 begin() 和 end()it!++it) {

2024-08-19 22:10:37 769

原创 C++入门——13多态

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。那么在继承中要构成多态还有两个条件:1.必须通过基类的指针或者引用调用虚函数2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写同一作用域下,函数名相同参数不同。两个具有继承关系的类中的函数,函数名相同。

2024-08-19 17:55:28 733

原创 C++入门——12继承

Person是父类,也称作基类。Teacher是子类,也称作派生类。

2024-08-18 23:53:22 897

原创 C++入门——11模板进阶

这是最常见的做法,将模板的声明和定义都放在同一个头文件中,所有需要使用模板的源文件都可以通过包含该头文件来实例化模板。

2024-08-18 17:01:59 882

原创 C++入门——10queue & priority_queue

1.队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。2. 队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。3. 底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。4. 标准容器类deque和list满足了这些要求。默认情况下,如果没有为queue实例化指定容器类,则使用标准容器deque。

2024-08-18 16:21:00 787

原创 C++入门——09stack

适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而是将其称为容器适配器,这是因为stack和队列只是对其他容器的接口进行了包装,STL中stack和queue默认使用deque。

2024-08-18 15:59:16 314

原创 C++入门——08list

iteratorlist// 获取并打印最后一个元素if (!// 删除 3// 1 2。

2024-08-18 15:36:19 919

原创 C++入门——07vector

it!= v.end();++it) {// 使用const_iterator遍历it!= v.end();++it) {// 使用reverse_iterator反向遍历rit!= v.rend();++rit) {// 使用const_reverse_iterator反向遍历rit!= v.rend();++rit) {

2024-08-18 15:35:51 550

原创 C++入门——06string

string常用接口,深浅拷贝

2024-08-18 15:35:27 983

原创 C++入门——05STL

STL的六大组件简介

2024-08-18 15:33:27 301

原创 C++入门——04模板初阶

什么是泛型编程,从而引出函数模板和类模板,以及它们的格式和如何实例化。

2024-08-18 15:32:46 228

原创 C++入门——03内存管理

/ 申请单个Test类型的空间free(p1);// 申请10个Test类型的空间free(p2);// 申请单个Test类型的对象delete p1;// 申请10个Test类型的对象注意:在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与free不会。

2024-08-18 08:00:00 703

原创 C++入门——02友元与内部类

public:// 内部类定义public:// 内部类成员函数可以访问外部类的私有成员// 内部类构造函数接受外部类的引用// 修改外部类的私有成员private:// 引用外部类// 外部类构造函数// 外部类的公有成员函数private:// 外部类的私有成员// 创建外部类对象// 创建内部类对象,传递外部类的引用// 通过外部类对象调用公有成员函数// 使用内部类对象访问和修改外部类的私有成员// 内部类访问外部类的私有成员。

2024-08-17 17:38:02 390

原创 C++入门——01类与对象

/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号1.声明和定义全部放在类体中,需要注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。public:MyClass(int v) : value(v) {} // 构造函数的定义void setValue(int v) { // 成员函数的定义value = v;int getValue() const { // 成员函数的定义。

2024-08-17 17:03:55 703

原创 C++入门——00预备篇

C语言和C++在多个方面存在差异。虽然C++是C语言的超集,并且两者之间有许多相似之处,但C++引入了许多新的特性和概念。

2024-08-16 17:08:48 382

原创 数据结构入门——08排序

排序是一种操作,通过比较记录中的关键字,将一组数据按照特定顺序(递增或递减)排列起来。排序在计算机科学中非常重要,因为它不仅有助于数据的快速检索,还能提高其他算法的性能。

2024-08-16 17:04:39 627

原创 数据结构入门——07堆

HP;

2024-08-14 18:12:48 298

原创 数据结构入门——06树

满二叉树是一种特殊的完全二叉树。

2024-08-14 17:30:56 693

原创 数据结构入门——05队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。

2024-08-13 21:40:39 383

空空如也

空空如也

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

TA关注的人

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