안녕하세요, 즈런이에요~ 
오랜만에 글을 올리는데,
요즘 너무 나태해져서...
아무튼 오늘부터 조금씩 손에 코드도 좀 로딩해보려구요.
Expert 준비해보려고 편하게 쓰던 STL 종류들 직접 짜보면서 손에 익히는 중이에요.
계속 못따는건 실력이 없어서겠죠 ㅠ
한 1년 준비하다보면 되지 않을까요?
아래 코드는 아직 검증해본적이 없어요..
그냥 막 짜보는 중입니다.
수정해야할 부분 있으면 말씀해주세요.
(2020.02.03 수정)
| 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | #ifndef __VECTOR_H__ #define __VECTOR_H__ #include <cstdio> #include <cstdlib> using namespace std; template <class T> class Vector{     private:         int sz,idx;         T *arr;     private:         void expand(int size);     public:         Vector();         virtual ~Vector();         void clear();         void push_back(T x);         void pop_back() { idx--; }         void resize(int size);         int size() const;         T& operator[](int at) const; }; //public functions template <class T> Vector<T>::Vector():sz(1),idx(0) {     arr = (T*)malloc(sizeof(T)); } template <class T> Vector<T>::~Vector() {     if(arr) free(arr); } template <class T> void Vector<T>::clear() {     idx=0; } template <class T> void Vector<T>::push_back(T x) {     if(idx>=sz) {         sz<<=1;         expand(sz);     }     arr[idx++] = x; } template <class T> void Vector<T>::resize(int size) {     if(size<=0) clear();     else idx = size;     //if(idx >= (1<<30)) exit(1); //error     if(idx >= sz) {         while(idx>=sz) sz<<=1;         T *tmp = NULL;         while(true) {             T *tmp = (T*)realloc(arr, (sz)*sizeof(T));             if(tmp != NULL) {                 arr = tmp;                 break;             }         }     } } template <class T> int Vector<T>::size() const { return idx; } template <class T> T& Vector<T>::operator[](int at) const {     return arr[at]; } //private functions template <class T> void Vector<T>::expand(int size) {     while(true) {         T *tmp = (T*)realloc(arr, (sz)*sizeof(T));         if(tmp != NULL) {             arr = tmp;             break;         }     } } #endif | cs | 

'Algorithm > Data Structure' 카테고리의 다른 글
| [Ex준비] Vector, MaxHeap, MinHeap → .cpp로 구현 (0) | 2018.11.09 | 
|---|---|
| [Ex준비] C++ Heap.h (priority_queue) (0) | 2018.11.09 | 
| 구간 업데이트와 구간 합이 모두 O(logN)에 가능한 펜윅트리 (Fenwick Tree Lazy Propagation) (4) | 2018.08.04 |