用c++使用模板和动态内存分配实现可变长数组
时间: 2024-02-28 13:57:56 浏览: 101
可以使用以下代码实现可变长数组的模板类:
```c++
template <typename T>
class DynamicArray {
private:
T* data;
int size;
public:
DynamicArray() {
data = nullptr;
size = 0;
}
~DynamicArray() {
if (data != nullptr) {
delete[] data;
}
}
void add(T value) {
T* new_data = new T[size + 1];
for (int i = 0; i < size; i++) {
new_data[i] = data[i];
}
new_data[size] = value;
delete[] data;
data = new_data;
size++;
}
T get(int index) {
return data[index];
}
int getSize() {
return size;
}
};
```
在这个类中,使用了动态内存分配来存储数组的数据,并且使用模板来支持不同类型的数组元素。`add()` 方法用来向数组中添加元素,`get()` 方法用来获取指定位置的元素,`getSize()` 方法用来获取数组的大小。当数组不再需要时,使用析构函数来释放内存。
阅读全文