自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单例模式(饿汉模式与懒汉模式)

文章目录单例模式饿汉模式懒汉模式单例模式饿汉模式程序一启动对象则会产生。因为是在类中私有化了静态成员对象;只有声明为静态成员,才可在类中定义自身成员对象;它是在进入主函数之前就生成的,所以说程序一启动对象则会生成,也因此,如果这个单例对象在多线程并发环境下频繁使用,性能要求较高 ,则此模式可以避免资源竞争,提高响应速度更好。优点:简单;缺点:可能会导致进程启动慢,且如果有多个单例类对象实例启动顺序不一定class Singleton { public: static Singleton*

2021-07-19 18:02:49 233

原创 智能指针详细介绍

文章目录智能指针auto_ptr(VC版)auto_ptr(VS版)scoped_ptr智能指针auto_ptr(VC版)namespace bit{ template<class _Ty> class auto_ptr { public: auto_ptr(_Ty *_P = 0) : _Ptr(_P), _Owns(_P!=0) {} auto_ptr(const auto_ptr<_Ty>& _Y):_Owns(_Y._Owns), _Ptr

2021-07-17 17:35:54 302

原创 动态链接与静态链接

程序编译执行预处理(展开所有代码,去掉注释,不检查代码错误)编译(语义语法分析,检查代码规范性)汇编(生成机器可识别代码)链接(生成可执行文件或库文件)到达链接环节时,由链接器将多个目标文件和链接库链接生成可执行程序。根据链接的原理不同,又可分为动态链接和静态链接动态链接静态链接...

2021-04-08 11:13:58 137

原创 进程创建-终止-等待-替换

文章目录进程创建进程终止进程等待进程替换进程创建意义:进程运行时常会出现崩溃,为了避免父进程出现奔溃,则会创建子进程去代替父进程处理事务,即使崩溃并不会影响到父进程的正常运行,再创建一个子进程再次处理罢了。用法:(man命令查相关命令及函数的具体用法)fork()创建子进程,父子进程虚拟地址空间独立vfork()创建子进程,并阻塞父进程,父子进程同用一块虚拟地址空间返回值:子进程返回0;父进程返回子进程pid;出错返回-1阻塞父进程:因为子进程和父进程分配到CP

2021-04-01 14:43:36 3330 6

原创 僵尸进程---孤儿进程

文章目录进程僵尸进程孤儿进程问题引入:进程基本概念进程:可执行程序 +管理该进程的数据结构集合进程控制块(PCB):进程属性的集合进程创建(fork)#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){int ret = fork();printf("hello proc : %d!, ret: %d\n", getpid(), ret);sleep(1

2021-03-26 18:57:36 2357 6

原创 写时拷贝及分段、分页、段页式内存管理(数据存储底层剖析)

写时拷贝(数据存储底层剖析)拷贝通常有浅拷贝、深拷贝、写时拷贝,本章就写时拷贝做出详细分析,数据到底是如何存储的写时拷贝概念

2021-03-26 18:46:15 273

原创 C/C++内存管理

文章目录C/C++内存分布C/C++管理方式new/delete操作内置数据类型虚拟地址空间与物理空间分页式分段式段页式C/C++内存分布通常我们所说的32位操作系统,64位操作系统是指32根地址或者64根地址线,下面以32位操作系统为例,底层剖析内存的存储和管理。32位地址线可表示的范围是0x00000000--------0xffffffffC/C++管理方式C中:(malloc…—>free)eg: int pr* p=(int*)malloc(指定申请字节大小);

2021-03-26 11:50:17 130 1

原创 const、static、friend(友元)的访问权限限定与特性

文章目录const访问权限限定static访问权限限定friend访问权限限定以上三种关键字的限定,归根到底,都是this指针在幕后操作。const访问权限限定const对象可以调用非const成员函数吗?非const对象可以调用const成员函数吗?const成员函数内可以调用其它的非const成员函数吗?非const成员函数内可以调用其它的const成员函数吗?static访问权限限定静态成员为所有类对象所共享,不属于某个具体的实例静态成员变量必须在类

2021-03-24 10:16:03 460 2

原创 运算符重载(附源代码)

文章目录运算符重载重载限制运算符重载重载意义在C++预定义中,运算符的操作对象只局限于基本的内置数据类型(int、double…),但是对于我们自定义的类型(类)是无法完成对应操作的。当我们对自定义的类型也有类似操作需求时,便需要对运算符进行不同的定义,赋予其新的功能,通过参数的类型及个数来区分,完成重载。重载格式:<返回类型说明符> operator <运算符符号>(<参数表>){ <函数体>}重载限制重载运算符的基本原则:C+

2021-03-19 16:55:47 1077

原创 C++构造函数与析构函数

构造函数与析构函数构造函数引入在结构体中,数据成员默认是公有权限,而为了避免,其中一个初衷是数据隐藏;因此类中数据成员是私有的,程序不能直接访问数据成员,需要设计公有的成员函数来访问数据成员。为了避免用户再调用其他成员函数之前调用acquire(),采用创建对象之时自动对它进行初始化 ----------类构造函数构造函数特征函数名与类名相同无返回值支持重载实例化对象时编译器自动调用构造函数声明和定义构造函数```cppclass Date{public: voi

2021-03-11 15:03:26 1128 5

原创 给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)在完成原地修改输入数组后,返回数组的新长度。

题目给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)在完成原地修改输入数组后,返回数组的新长度。示例示例 1:输入:[“a”,“a”,“b”,“b”,“c”,“c”,“c”]输出:返回 6 ,输入数组的前 6 个字符应该是:[“a”,“2”,“b”,“2”,“c”,“3”]示例 2:输入:[“a”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”]

2021-03-04 20:49:39 612 4

原创 栈和队列思想架构(附代码实现+OJ题)

栈和队列栈和队列是两种重要的线性结构,从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,他们是操作受限的线性表,因此可称为限定性的数据结构。但从数据类型角度看,他们是和线性表大不相同的两类重要的抽象数据类型。思想架构如果把物质层面的人体比作数据存储的物理结构,那么精神层面的 人格则是数据存储的逻辑结构。逻辑结构是抽象的概念,它依赖于物理 结构而存在。栈和队列。这两者都属于逻辑 结构,它们的物理实现既可以利用数组,也可以利用链表来完成。栈概念及结构---

2021-01-25 15:45:09 229

原创 字符串及内存操作相关函数(附模拟实现代码)

字符串操作函数strlen(测量字符串长度)‘\0’是字符串的结束标志,所测字符串长度不包括’\0’函数返回值类型为size_t(无符号整形)strcpy(字符串拷贝)‘\0’是拷贝结束标志,并且源字符串中’\0’也被拷入目标字符串目标字符串空间必须足够存放源字符串strcat(字符串连接)目标字符串中的’\0’被源字符串第一个字符所覆盖,且源字符串必须以’\0’结束禁止自己为自己追加,因为自己为自己追加时首先源字符串的’\0’被自己的第一个元素所覆盖,因此失去了追加结束标志,.

2020-12-21 18:58:35 123

原创 三子棋(C语言)附源代码

三子棋(C语言)前言通常项目开发需采取分文件形式编写,分别为:test.c 作为代码测试的入口game.c 此次三子棋编写涉及到的功能函数实现game.h 此头文件通常用来完成函数声明、头文件的引用、宏定义变量。整体思路-棋盘的初始化棋盘打印电脑下棋判断输赢玩家下棋判断输赢代码块game.h头文件#include <stdio.h>#include <stdl

2020-12-18 16:50:02 1596

原创 数据在内存中的存储

数据在内存中的存储内存中的地址是以byte为单位进行分配空间的;根据电脑系统可分为32位和64位操作系统,其中32位操作系统是由32根地址线来发送0、1电信号来产生内存序列的,即32位操作系统中,地址占32个byte位(4个字节)。同理64位操作系统中地址占64个byte位(8个字节)。整形在内存中的存储在计算机系统中,有符号数有三种表示方法,即源码、反码、补码,数值一律以补码方式表示和存储。源码: 直接将二进制按照正负数的形式翻译成二进制即可反码: 在源码基础上,保持符号位不变,其他位按位取反

2020-12-17 20:35:59 332

原创 2020-11-17

来自一所普通高校,

2020-11-17 21:26:38 246 2

空空如也

空空如也

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

TA关注的人

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