-
231220 Death's Door project 설명 영상 제작, vector 자료구조 만들어보기기록 2023. 12. 20. 15:22
데스도어 모작 팀 프로젝트
vector
template <typename T> class vector { public: // 생성자 vector(const int& temp = 10) { arr = new T[temp]; m_size = 0; m_capacity = temp; } // 소멸자 ~vector() { delete[] arr; arr = nullptr; } T& operator[](size_t index) { if (index >= m_size) { // 오류메세지 return nullptr; } return arr[index]; } void push_back(const T& num) { if (m_capacity <= m_size) { //capacity가 size보다 작거나 클때 작업 reserve(m_size); m_capacity *= 2; T* Tmparr = new T[m_capacity]; memcpy(Tmparr, arr, sizeof(T) * m_size); delete[] arr; arr = Tmparr; } arr[m_size++] = num; } void pop_back() { m_size--; } T& end() const { return arr + m_size; } T& begin() const { return arr; } void erase(int* _iter) { } void resize(const size_t n, T val = 0) { if (n <= m_size) { return; } reserve(n); for (size_t i = m_size; i < n; ++i) { arr[m_size++] = val ; } } void reserve(int n) { if (n <= m_capacity) return; m_capacity = n; T* TmpArr = new T[m_capacity]; memcpy(TmpArr, arr, sizeof(T) * m_size); delete[] arr; arr = TmpArr; } //vector.size() size_t size() { return m_size; } //vector.capacty() size_t capacity() { return m_capacity; } void clear() { m_size = 0; } bool empty() { return static_cast<bool>(m_size); } private: T* arr; size_t m_size; size_t m_capacity; };
list
'기록' 카테고리의 다른 글
231231 MFC (0) 2023.12.31 231229 list 자료구조 만들어보기 (0) 2023.12.29 기록) DD project 미리보기 (1) 2023.12.01 231108 기록 (0) 2023.11.08 231011 이펙트 메쉬 적용, 몬스터 공격 액터 생성, 본 애니메이션 weight 변경, 그 외 (0) 2023.10.11