数据结构定义动态数组
时间: 2023-11-26 21:43:52 浏览: 33
动态数组是一种可以根据需要自动扩展大小的数组。在实现动态数组时,需要定义一个初始容量和一个增长因子,当数组元素数量超过当前容量时,就会自动扩展容量。以下是一个简单的动态数组的定义示例:
```c++
template <typename T>
class DynamicArray {
private:
T* data; // 存储数据的指针
int size; // 数组元素数量
int capacity; // 数组容量
const int DEFAULT_CAPACITY = 10; // 默认容量
const int GROW_FACTOR = 2; // 增长因子
public:
DynamicArray() {
size = 0;
capacity = DEFAULT_CAPACITY;
data = new T[capacity];
}
~DynamicArray() {
delete[] data;
}
void add(T element) {
if (size >= capacity) {
int newCapacity = capacity * GROW_FACTOR;
T* newData = new T[newCapacity];
for (int i = 0; i < size; i++) {
newData[i] = data[i];
}
delete[] data;
data = newData;
capacity = newCapacity;
}
data[size++] = element;
}
T get(int index) {
if (index < 0 || index >= size) {
throw "Index out of bounds";
}
return data[index];
}
int getSize() {
return size;
}
int getCapacity() {
return capacity;
}
};
```