Vector动态数组复现
引言:为什么需要动态数组?在C语言中,静态数组的大小在编译时确定,无法根据运行时需求动态调整。当数据量不确定或需要频繁插入/删除元素时,静态数组会暴露出明显缺陷:要么浪费内存(声明过大),要么溢出(声明过小)。动态数组(Vector)通过堆内存分配和自动扩容机制,完美解决了这一问题。它支持灵活的元素插入、删除,且内存使用更高效,是实现栈、队列等高级数据结构的基础。 核心结构:Vector的设计哲学结构体定义:封装底层细节代码中的Vector结构体通过三个字段封装了动态数组的核心状态: 12345typedef struct { ElemType *table; // 指向堆空间的数组(存储实际元素) int size; // 当前元素个数(逻辑长度) int capacity; // 数组的最大容量(物理长度)}...