数组/向量

本文深入探讨了C风格数组的特性,包括其作为指针的本质及内存管理方式。同时,详细介绍了C++中Vector类的实现原理,包括动态数组的扩容策略与内存管理机制。文章还对比了两者在内存分配、大小调整及资源释放上的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 著 冯舜玺 译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值