自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力打工

一天学一点,加薪乐无忧

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

原创 欧拉函数证明

欧拉函数:φ(a) :小与a与a互质的数的个数(1)当a为质数时,φ(a)的结果为 a-1(2)当a为1时,φ(a)的结果为1(3)当a为两个素数乘积时,a = b*c -> φ(a) = φ(b)*φ(c)证明:欧拉函数是积性函数:由于b为质数,c为质数,p1是小于b且与b互质的某个整数,p2是小于c且与c互质的某个整数。所以对应的每一对p1*p2对于a来说都与a互质。...

2018-11-17 15:26:43 596

原创 new 与malloc申请内存区别

首先我们需要了解堆与栈的概念。区分堆内存与栈内存的区别。以及堆与栈访问速度的差异的原因。 1.属性:new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。2.参数:使用new 操作副申请内存分配时无须制定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。3.返回类型:new操作...

2018-11-05 22:02:42 1264

原创 C++内存分类

内存分为5个区:栈,堆,自由存储区,全局/静态存储区,常量存储区。 栈区:内存由编译器再需要时自动分配和释放。通常用来存储局部变量和函数参数。(为运行函数而分配的局部变量,函数参数树,返回地址等存放在栈区)。栈运行分配内置于处理器的指令之中,效率高,但是分配的内存容量有限。 堆区:内存由new分配的内存块,他们的释放搬移其不管,有我们的应用程序区控制,一般一个new就要对应一个de...

2018-11-05 21:24:55 1943 2

原创 堆(heap)内存与栈(stack)内存的区别

数据结构中描述堆栈:堆(heap):是一种非连续的树形存储数据结构,每个节点存在一个值,整个树是经过排序的,特点是根节点最小(小顶堆)或根节点最大(大顶堆),且根节点的两个子树也是一个堆。常用来实现优先队列,存取随意。栈(stack):是一种连续存储的数据结构,具有先进后出的性质。通常的操作有入栈(压栈),出栈和栈顶元素。想要读取某个元素就要将之前的元素全部出栈,才能完成。内存中的栈区...

2018-11-05 15:56:50 1535

原创 堆排序 - 优先队列(实现)

优先队列:优先队列的实现是大顶堆(优先级最高的元素再前面),对于节点数量为n的大顶堆,插入元素与弹出元素的时间复杂读为O(log(n)),询问的时间复杂度为O(1)。首先我们需要将数组映射到完全二叉树上。对于数组[16, 7, 3, 20, 17, 8]映射为:从后到前调整非叶子节点与子节点的位置:对于大小为n的二叉树,需要调整的第一个节点为n/2号节点。为了方便理解我...

2018-11-04 21:37:35 245

原创 智能指针实现C++

#include <iostream>using namespace std;template <typename T>class Shared_ptr{private: T* _ptr; size_t *_count;//unsigned int *_count;public: Shared_ptr(T* ptr = nullptr)...

2018-11-03 20:49:13 122

原创 智能指针原理(整理)

智能指针智能指针主要包含:shared_ptr,unique_ptr,weak_ptr。三种模板类,头文件为<memory>,c++11之后版本使用。智能指针的作用有:C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。...

2018-11-02 21:57:16 732

原创 空悬指针&&野指针

空悬指针(dangling pointer)指向已经销毁的对象或已经回收的地址,以下情况可能出现空悬指针:#include <iostream>int main(){ char *d = NULL; { char c = 'c'; d = &c; } //变量c释放,d变为空悬指针}#incl...

2018-11-02 20:53:16 165

原创 c语言 malloc 函数用法

函数声明:Tips: void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。malloc 函数申请空间需要使用free释放。void* malloc(int size) malloc向系统申请size字节的内存空间,返回值类型为void *。使用说明:int *p;p = (int *)malloc( sizeof(in...

2018-11-02 20:40:14 4817

空空如也

空空如也

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

TA关注的人

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