C++实现一个vector
时间: 2023-10-21 20:05:20 浏览: 39
好的,我可以向您展示如何实现一个简单的vector类。
首先,我们需要定义一个类:
```c++
template <typename T>
class Vector {
private:
T* arr;
int size;
int capacity;
public:
Vector();
~Vector();
void push_back(T val);
void pop_back();
T& operator[](int index);
int getSize();
int getCapacity();
};
```
其中,arr是指向存储元素的数组的指针,size表示当前元素的数量,capacity表示当前数组的容量。
接下来,我们需要实现每个函数:
```c++
template <typename T>
Vector<T>::Vector() {
arr = new T[1];
size = 0;
capacity = 1;
}
template <typename T>
Vector<T>::~Vector() {
delete[] arr;
}
template <typename T>
void Vector<T>::push_back(T val) {
if (size == capacity) {
T* temp = new T[capacity * 2];
for (int i = 0; i < size; i++) {
temp[i] = arr[i];
}
delete[] arr;
arr = temp;
capacity *= 2;
}
arr[size] = val;
size++;
}
template <typename T>
void Vector<T>::pop_back() {
if (size > 0) {
size--;
}
}
template <typename T>
T& Vector<T>::operator[](int index) {
return arr[index];
}
template <typename T>
int Vector<T>::getSize() {
return size;
}
template <typename T>
int Vector<T>::getCapacity() {
return capacity;
}
```
这些函数实现了向vector添加元素、删除元素、访问元素以及获取vector大小和容量的功能。
现在,您可以使用该类来创建一个vector对象并开始添加、删除和访问元素了!
请注意,这只是一个简单的实现,实际上STL vector类包含了更多功能和优化。