设计myvector类模板
时间: 2023-08-07 13:24:39 浏览: 88
好的,我可以为您设计一个myvector类模板。myvector类模板是一个动态数组,它可以根据需要自动调整大小。以下是一个简单的myvector类模板的示例:
```c++
template <typename T>
class myvector {
private:
T* arr;
int capacity;
int size;
public:
// 构造函数
myvector() {
capacity = 2;
size = 0;
arr = new T[capacity];
}
// 析构函数
~myvector() {
delete[] arr;
}
// 插入元素
void push_back(T element) {
if (size == capacity) {
capacity *= 2;
T* new_arr = new T[capacity];
for (int i = 0; i < size; i++) {
new_arr[i] = arr[i];
}
delete[] arr;
arr = new_arr;
}
arr[size++] = element;
}
// 获取元素
T& operator[](int index) {
if (index < 0 || index >= size) {
throw "Index out of range";
}
return arr[index];
}
// 获取大小
int getSize() {
return size;
}
};
```
在这个示例中,myvector类模板有三个私有属性:指向动态数组的指针arr,数组的容量capacity和数组的大小size。构造函数将容量初始化为2,并分配一个大小为2的数组。析构函数释放了动态数组的内存。push_back()方法将元素插入到数组中,并在需要时动态调整数组的大小。operator[]方法返回指定索引位置的元素。getSize()方法返回数组的大小。
阅读全文