[자료구조 구현] Vector

후이재·2020년 11월 17일
0

오늘 면접에서

Vector의 내부구조가 어떻게 되어있는지에 대한 질문을 들었다.
생각할 수록 어떻게 되어있을 까 생각이 나지 않더라.
집에 와서 검색해보니 이런 형식으로 되어있더라

코드(C++)

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;
    }
}
}
profile
공부를 위한 벨로그

0개의 댓글