★忒變&忄★
★忒變&忄★
全部文章
C++
HELLO C(19)
IT资源(8)
LC(12)
Linux(9)
数据结构(20)
未归档(5)
网络编程(3)
计算机组成原理(1)
归档
标签
去牛客网
登录
/
注册
★忒變&忄★的博客
全部文章
/ C++
(共21篇)
初夏小谈:vector的模拟实现(二)解决浅拷贝问题
上次实现的vector中存在这样的问题:就是在扩容中用memcpy来进行元素的拷贝,但是它会拷贝数据的位置,到另一块空间中。这样在后面的释放原来的空间后,这一份资源就会被释放,从而这块新空间指向的资源将会失效。程序就会发生崩溃。所以就进行深拷贝。 代码如下: #include<...
2019-04-20
0
446
初夏小谈:vector中迭代器失效问题
在模拟vector中会发生一种错误,程序崩溃。经过调试发现当使用迭代器时当指向的空间发生扩容后,在对用迭代器指向的空间进行解引用时会发生程序崩溃。在vector中,我们知道迭代器可以看作是原生态的指针,那么对指针进行解应用发生崩溃,就说明了对一块不属于当前指针的空间进行了解引用。 在vect...
2019-04-20
0
367
初夏小谈:vector的模拟实现
vector是一种数据的序列容器,它的大小是可以改变的。它和数组相似,都采用连续的存储空间来存储元素。所以他可以像数组一样高效的进行对元素的各种访问操作。它比数组更加灵活,可以自动根据需要动态改变大小。 vector在本质上是动态分配数组来存储它的元素,当有元素被存进来或者改变有效元素个数以及扩...
2019-04-13
0
256
初夏小谈:你不知道的malloc(0)
在之前整理动态内存管理的知识时发现这样一个有意思的问题就是malloc(0),那么指向它的指针是空吗?还是什么?另外这片空间的大小到底是多少呢? 今天专门针对这个问题进行了详细的研究。发现malloc(0)是一个有效的分配内存的方法,但是它仅仅是返回一个指向一个未被使用的空间的地址,...
2019-03-27
0
565
初夏小谈:C&C++动态内存管理
一、C语言中的动态内存管理方式 malloc/calloc/realloc三种开辟内存的方式 1.malloc函数原型 void* malloc(size_t size) 需要动态开辟内存空间时调用malloc函数,可以在堆上开辟出一块连续的内存空间,并且返回...
2019-03-26
0
449
初夏小谈:设计模式之单例模式
一、何为设计模式? 所谓设计模式就是一种被反复使用,被频繁使用的代码经验的总结。设计模式的出现使得代码更容易被理解,保证了代码的可靠性。它让代码变得工程化。就如打仗用的兵书一样(孙子兵法)。 二、单例模式 单例模式就是一个类只能创建一个对象。这种模式可...
2019-03-22
0
387
初夏小谈:类和对象(四)(特殊的static)
一、不一样的构造函数 1.理清赋值与初始化列表 通过之前的已经知道构造函数是在创建类对象时初始化对象,那么构造函数体中的操作究竟是不是初始化呢?很明显它不是初始化,为什么这么说呢?因为在构造函数内可以进行多次赋值。而初始化只有一次,这就说明函数体内进行的是赋值操作了。 ...
2019-03-21
0
351
初夏小谈:类和对象(三)之默认成员函数
上一篇说明类中六大默认函数之构造函数,今天来说说剩下的5个默认函数。 一、析构函数 1. 什么是析构函数? 从构造函数我们知道,它是在创建对象时为对象赋一个合适的初始值,就是初始化对象。而构造函数则和构造函数相反。它是在对象生命周期结束时,编译器自动调用析构函数来清理...
2019-03-15
0
540
初夏小谈:类和对象(二)之构造函数
如果一个类中什么成员什么也没有,称它为空类。但是它里面真的什么也没有吗?在C++中空类中会默认生成6个成员函数。首先来说说第一个构造函数。 一、什么是构造函数? 1.概念:构造函数是一种特殊的成员函数,它与类名相同,在创建类类型对象时,由编译器自动调用初始化对象,为对...
2019-03-15
0
353
初夏小谈:类和对象(一)
类?什么是类? 在了解什么是类之前,先来了解一下C语言struct,C语言由于它是面向过程的,它更多的关注求解一个问题的过程,即步骤。在C语言的struct结构体中是不能定义函数的,它只能定义变量。而在C++中,它是基于面向对象的。它关注更多的是对象。它在处理一个问题时,是把一个问...
2019-03-14
0
341
首页
上一页
1
2
3
下一页
末页