#include<iostream>
using namespace std;
template<typename T>
class Myvector
{
public:
Myvector()
{
data=NULL;
capacity=size=0;
}
Myvector(const Myvector& other)
{
if(this==&other)
return;
data=new T[other.size];
for(int i=0; i<size; i++)
data[i]=other[i];
capacity=other.capacity;
size=other.size;
}
T& operator[](int index)
{
if(index>=size)
{
cout<<"Overflow!"<<endl;
}
return data[index];
}
const Myvector& push_back(const T temp)
{
if(size>=capacity)
{
T* newData=new T[capacity*2+1];
memmove(newData,data,size*sizeof(T));
delete[] data;
data=newData;
capacity=capacity*2+1;
}
data[size++]=temp;
return *this;
}
unsigned int GetSize()
{
return size;
}
unsigned int GetCapacity()
{
return capacity;
}
private:
T* data;
unsigned int c
面试手写一个简单的STL容器vector
最新推荐文章于 2024-08-17 20:52:28 发布
本文介绍了如何手写一个简单的STL容器vector,包括构造函数、复制构造函数、下标运算符、push_back方法和获取大小及容量的方法。示例代码展示了如何使用这个自定义vector类来存储和操作自定义类型T的对象。
摘要由CSDN通过智能技术生成