c++设计myvector类模板
时间: 2023-06-20 14:03:51 浏览: 116
下面是一个简单的 C++ MyVector 类模板的示例代码:
```cpp
template <typename T>
class MyVector {
public:
MyVector() {
m_size = 0;
m_capacity = 4;
m_data = new T[m_capacity];
}
~MyVector() {
delete[] m_data;
}
void push_back(const T& item) {
if (m_size == m_capacity) {
resize(m_capacity * 2);
}
m_data[m_size++] = item;
}
T& operator[](int index) {
return m_data[index];
}
int size() const {
return m_size;
}
private:
void resize(int new_capacity) {
T* new_data = new T[new_capacity];
for (int i = 0; i < m_size; ++i) {
new_data[i] = m_data[i];
}
delete[] m_data;
m_data = new_data;
m_capacity = new_capacity;
}
T* m_data;
int m_size;
int m_capacity;
};
```
上述代码中,MyVector 类模板是一个动态数组,它可以动态地增加和减少大小。它使用了模板参数 T,这意味着我们可以使用所有类型的对象来创建 MyVector 对象。MyVector 类模板提供了 push_back、operator[] 和 size 方法,用于向 MyVector 对象中添加元素、访问元素和获取 MyVector 对象中元素的数量。它还提供了 resize 方法,用于调整 MyVector 对象的容量。
阅读全文