如何在C++中实现自己的向量类
给定任务是在C++中实现一个类,它的行为就像向量类。
向量与动态数组相同,但具有在插入或删除元素时自动调整大小的能力,并且其存储由容器自动处理。向量元素放置在连续存储中,以便使用迭代器访问和遍历它们。在向量中,数据插入到末尾。在末尾插入需要差异时间,因为有时需要扩展数组。删除最后一个元素仅需要常数时间,因为不会发生调整大小。在开头或中间插入和删除是线性时间。
我们还可以使用模板使向量类通用。
我们将要实现的与向量关联的一些函数包括:
- void push(int data) :此函数接受一个元素并将其插入到末尾。平摊时间复杂度为O(1)。
- void push(int data, int index) :它将数据插入到指定的索引处。时间复杂度为O(1)。
- int get(int index) :它用于获取指定索引处的元素。时间复杂度为O(1)。
- void pop() :它删除最后一个元素。时间复杂度为O(1)。
- int size() :它返回向量的大小,即向量中的元素数量。时间复杂度为O(1)。
- int getcapacity() :它返回向量的容量。时间复杂度为O(1)。
- void print() :它用于打印数组元素。时间复杂度为O(N),其中N是向量的大小。
以下是我们自己的向量类的实现。
输出