Vector의 내부구조가 어떻게 되어있는지에 대한 질문을 들었다.
생각할 수록 어떻게 되어있을 까 생각이 나지 않더라.
집에 와서 검색해보니 이런 형식으로 되어있더라
template <typename T>
class Vector{
T* data;
int capacity;
int length;
public:
Vector(int n = 1):data(new T[n]), capacity(n), length(0){}
void puch_back(T s){
if(capacity <= length){
T* temp = new T[capacity *2];
for(int i=0;i < length; i++){
temp[i] = data[i];
}
delete data;
data = temp;
capacity *=2;
}
data[length] = s;
length++;
}
T operator[](int i) {return data[i];}
void remove(int x){
for(int i=x+1;i<length;i++){
data[i-1] = data[i];
}
length--;
}
int size(){return length};
~Vector(){
if(data){
delete[] data;
}
}
}