티스토리 뷰

사용언어 : C++

 

심심해서 Vector을 그냥 만들어 봤습니다. 심심할때 마다 기능을 추가할 예정이니 간단하게만 봐주세요!

 

#include <iostream>

template<typename T>
class Vector {
public:
	Vector() {
		this->size = 0;
		capacity = 5;
		data = new T[capacity];
	}
	Vector(int num) {
		this->size = 0;
		capacity = num;
		data = new T[num];
	}
	void push_back(T n) {
		if (size == capacity) {
			resize(capacity*2);
		}
		data[size++] = n;
	}
	void resize(int n) {
		capacity = n;
		T* tmp = new T[capacity];
		if (size > capacity)
			size = capacity;
		for (int i = 0; i < size; i++) {
			tmp[i] = data[i];
		}
		delete[] data;
		data = std::move(tmp);
		tmp = nullptr;
	}
	T operator[](int n) {
		return data[n];
	}
	int Size() {
		return size;
	}
	int Capacity() {
		return capacity;
	}

private:
	T* data;
	int size, capacity;
};

int main() {
	Vector<int> v(10);
	for(int i = 0;i< v.Capacity();i++)
		v.push_back(i);
	v.resize(5);
	for (int i = 0; i < v.Size(); i++) {
		std::cout << v[i] << std::endl;
	}
	
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함