C风格数组
int arr1[10];
- arr1实际上是一个指向大到足以存储10个int型量的内存指针; 大小由程序员确定
- 内存快可以通过new[]分配,但此后必须通过delete[]释放
- 内存块不能调整大小(但可以获得一个新的、根据推测可能更大的内存块,并利用原来的内存块初始化,然后将原内存块释放)
Vector
#include<algorithm>
template<typename Object>
class Vector{
private:
int theSize;
int theCapacity;
Object* objects;
public:
explicit Vector(int initSize = 0):theSize{initSize},theCapacity{initSize + SPARE_CAPACITY}{
objects = new Object[theCapacity];
}
~Vector(){delete[] objects}
static const int SPARE_CAPACITY = 16;
};
参考:数据结构与算法分析——C++语言描述(第四版)[美] Mark Allen Weiss 著 冯舜玺 译
C风格数组与Vector详解
本文深入探讨了C风格数组的特性,包括其作为指针的本质及内存管理方式。同时,详细介绍了C++中Vector类的实现原理,包括动态数组的扩容策略与内存管理机制。文章还对比了两者在内存分配、大小调整及资源释放上的差异。
1281

被折叠的 条评论
为什么被折叠?



