自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux文件

程序的执行是基于虚拟地址空间的,由。虽然1号fd和2号fd都对应的显示器文件,但是他们两个是不同的,如同认为,同一个显示器文件,被打开了两次,所以log.txt里只有1号fd的内容,而显示器上还是2号fd内容的数据。我们知道,动态库在进程运行的时候,是要被加载的(静态库没有), 且常见的动态库是被所有程序动态链接的,都要使用, 所以动态库也叫共享库.于是我们可以得到一个结论,实际上,0,1,2分别是stdin,stdout,stderro,其中stdin,stdout,stderro是FILE* 类型的,

2024-06-18 11:15:05 404

原创 搜索二叉树

但是InOrder()需要一个参数root,现在有三种解决办法,a.将_root改为public,b.写一个GetRoot(),c.如下。此时有两种解决办法,一是更新_root,更新为节点3,二是找左子树的最大值来作为cur的prev。我们知道,搜索二叉树的中序遍历是一个有序表,现在我们想要像这样调用。看似上面的代码没有问题,但面对下面的测试用例时,就会有问题。这个引用起作用,就需要一层一层的往下递归传递。, 这样是错误的,因为函数的默认参数。其中第②种情况包含第①中情况。,可以看下面的递归展开图。

2024-05-22 15:24:05 385

原创 c++多态

public:cout

2024-05-07 19:25:22 629

原创 c++继承

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。继承是类设计层次的复用public:protected:// 公有继承protected:int _stuid;// 学号protected:int _jobid;// 工号int main()

2024-04-25 18:40:58 970

原创 linux进程控制

c语言提供了一共有6个execl函数关于函数命名规则的理解l(list) : 表示参数采用列表v(vector) : 参数用数组p(path) : 有p自动搜索环境变量PATHe(env) : 表示自己维护环境变量。

2024-04-22 20:56:00 716

原创 c++模版进阶

/ add.hpp地址,因为add没有实例化,没办法确定T// add.hpp。

2024-04-15 20:34:26 925

原创 反向迭代器

为例,我们完全可以再添加一个__list_reverse_iterator结构体,只需要修改++和–的逻辑。但是这样代码重复度太高了!而且自定义类型的迭代器才可以这样用,所以SGI版本的STL使用了迭代器适配模式。创立一个reverse_iterator.h,弱化了源码的萃取版本。单独写一个迭代器的类不仅减少了代码的冗余,其他容器也可以很好的适用。

2024-03-03 21:31:28 301

原创 stack和queue

是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。

2024-03-03 21:29:56 797

原创 进程地址空间

看task_struct的源码,可以看到有一个指针,其中mm_struct就是地址空间,里面有各个区域的划分所以地址空间就是一种内核数据结构......

2024-02-14 20:38:07 1294

原创 stl_list

迭代器失效即迭代器所指向的节点的无效,即该节点被删除了。因为list的底层结构为带头结点的双向循环链表,因此在list中进行,并且失效的只是指向被删除节点的迭代器,其他迭代器不会受到影响。

2024-01-31 20:56:35 339 1

原创 linux进程(1)

抢占与中断:抢占是内核对进程的管理:当高优先级的任务因中断而成为就绪,特定的低优先级进程将让出CPU,而那个高优先级的进程得到CPU。如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。时间片:时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。独立性: 多进程运行,需要独享各种资源,多进程运行期间。

2024-01-29 20:12:03 1858 1

原创 一种比较好理解的高精度结构体

10。

2024-01-28 20:07:19 326

原创 vector

insert,erase pos位置后,不要再次访问pos,可能会出现各种出乎意料的结果,这就是迭代器失效。

2024-01-26 16:50:09 383 3

原创 c++ string(包含string的部分实现)

at越界后会抛异常,[]越界后会直接报错。

2023-11-10 20:26:37 45 1

原创 模版_函数模版与类模版_使用类模板写一个通用栈

函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定 类型版本。

2023-10-19 15:46:37 34 1

原创 Linux工具_vim,make和Makefile, yum,git,gdb

三种模式:命令模式(默认打开的模式),编辑/插入模式,底行模式。

2023-10-18 20:23:54 37 1

原创 cc++内存管理

选项: A.栈 B.堆 C.数据段(静态区) D.代码段(常量区)globalVar在哪里?C localVar在哪里?AstaticGlobalVar在哪里?C staticVar在哪里?Cnum1 在哪里?Achar2在哪里?A *char2在哪里?ApChar3在哪里?A *pChar3在哪里?Dptr1在哪里?A *ptr1在哪里?B。

2023-10-14 20:23:23 28 1

原创 c++类和对象第二部分

public:static StackOnly CreatObj() // 提供一个静态成员函数供外界使用return s;StackOnly(int a = 0) : _a(a){} // 将构造函数私有化int main()return 0;public:static StackOnly CreatObj() // 提供一个静态成员函数供外界使用return s;

2023-10-08 16:18:28 56 5

原创 c++类和对象

在Person.h中有如下代码int age;// 定义public:// 声明private:int _age;// 声明Person.cppmain.cppint main()Person p1;return 0;此时运行代码会出现链接错误(fatal error LNK1169: 找到一个或多个多重定义的符号),因为age会在person.cpp和main.cpp展开,都会放到符号表,链接时就会有两个age,所以.h文件中要谨慎地定义全局变量。

2023-09-14 17:49:16 65 7

原创 c++的静态成员

static数据成员在类外定义和初始化是为了保证只被定义和初始化一次,这样编译器就不必考虑类的函数里面第一个对static变量的’=’操作是赋值还是初始化了。static const int可以在类里面初始化,是因为它既然是const的,那程序就不会再去试图初始化了。因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的。// 必须要进行初始化,且类内声明,类外初始化。// 也可以在类外初始化。// 静态成员属于类,不属于对象,是所有对象共享。

2023-08-03 08:46:45 40 6

原创 基础数据结构链表以及oj题目

本文介绍了链表的结构,以及常见的面试题

2023-08-01 11:14:37 79 5

原创 stl_set

同样的,map容器也要求比较函数对象必须是const的,因为map容器也是一个有序的关联容器,它会根据比较函数对象的结果来排序和存储键值对。set容器要求比较函数对象必须是const的,是因为set容器是一个有序的关联容器,它会根据比较函数对象的结果来排序和存储元素。为了保证set容器的正确性和稳定性,比较函数对象必须是const的,这样它就不能修改自身或者其他元素的值,只能进行比较操作。容器,以在容器中对元素进行排序和比较。容器对象,并使用自定义的比较函数。是一个有序容器,其中的元素类型是。

2023-05-25 10:10:04 44

原创 c++的静态成员

static数据成员在类外定义和初始化是为了保证只被定义和初始化一次,这样编译器就不必考虑类的函数里面第一个对static变量的’=’操作是赋值还是初始化了。static const int可以在类里面初始化,是因为它既然是const的,那程序就不会再去试图初始化了。因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的。C中一个函数里定义一个static变量是为了保证只初始化一次。

2023-05-13 21:14:26 36

原创 常函数和常对象

【代码】常函数和常对象。

2023-05-13 21:14:16 49

原创 c++友元

class Boy;// 声明Boy类 class Girl {public :// 将PriData函数声明为Girl类的友元函数 private :int age;public :// 将PriData函数声明为Girl类的友元函数 private :int age;Girl g1("翠花" , 18);Boy b1("张三" , 20);return 0;

2023-04-25 13:22:26 42

原创 c语言动态内存开辟

c语言动态内存开辟

2023-02-22 14:25:41 69

原创 自定义类型:结构体, 枚举,联合

自定义类型的学习

2023-02-18 10:24:52 32

原创 结构体初阶

结构体(struct):是在C语言编程中,一种用户自定义可使用的数据类型,且是由多个相同或不同数据类型的数据项构成的一个集合。所有的数据项组合起来表示一条记录。结构成员的类型:char、int、short、long、float、double、数组、指针、结构体等等。struct 结构体名称{char a;int b;//a,b,c……皆为结构体成员变量(结构体内容)double c;…………}结构体变量;//(分号不能丢)struct Bchar a;short b;

2023-02-13 21:16:23 38

原创 c语言内存函数

c语言内存函数讲解

2023-02-13 16:54:57 45

原创 字符函数和字符处理函数

字符函数和字符处理函数学习

2023-02-13 11:56:26 34

原创 c语言作业2

c语言作业2

2023-02-11 16:11:04 63

原创 指针练习2~

指针练习2

2023-02-11 16:09:47 42

原创 指针练习题1,轻松拿下~

指针练习题1

2023-02-10 12:07:20 57

空空如也

空空如也

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

TA关注的人

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