본문 바로가기

All66

[C++] vector의 push_back, emplace_back 비교하기 template void std::vector.push_back(T instance); template // 가변 인자 템플릿 void std::vector.emplace_back(T's Args...) class Item // push_back, emplace_back 비교를 위한 클래스입니다. { public: int healAmount; Item(int amount) : healAmount(amount) { cout 2021. 12. 1.
[C++] vector와 list vector는 array 기반, list는 Linked List 기반으로 value를 저장하는 자료구조입니다. vector vector는 array이므로, 연속적인 메모리 공간에 할당합니다. capacity와 size를 기준으로 스스로 확장, 축소하는 Dynamic Array입니다. iterator 및 index로 접근이 가능하고, array 기반이므로 list에 비해 임의 접근 속도가 O(1)입니다. 삽입, 삭제 또한 O(1)이나, 컨테이너 끝이 아닌 경우 모든 요소를 밀고 삽입해야 하므로 O(N)의 시간 복잡도를 갖습니다. list list는 Linked List를 기반으로 하기 때문에, 연속된 공간이 아닌 요소가 다음 요소를 가리키는 포인터를 가지는 방식으로 구현되어 있습니다. 이로 인해 index.. 2021. 12. 1.
[C++] map과 unordered_map 기본적으로 map과 unordered_map은 key, value의 한 쌍으로, pair 형태를 띄는 자료구조입니다. map map은 아래와 같은 형태의 RB Tree로 이루어져 있습니다. (이해하는 데 도움을 받은 링크를 첨부합니다.) 요약하면 RB Tree는 레드 노드를 연속으로 배치할 수 없도록 하여 느슨한 AVL Tree를 만든 것입니다. 유사 AVL Tree이므로 자료구조의 탐색, 삽입, 삭제가 얼추 O(log N)으로 보장됩니다. Key를 기준으로 정렬되어 있으며, Iterator를 통해 그 순서대로 순회가 가능합니다. https://jwdeveloper.tistory.com/280 (알고리즘) 레드블랙트리 이번 포스팅은 레드 블랙 트리를 포스팅할 예정이다. 레드 블랙트리를 포스팅하는 이유는 .. 2021. 12. 1.
Mini Kingdom 자료 - 2021 홍익대학교 졸업 프로젝트 소스 코드 GitHub Repository ( 전체 시스템 구조도 포함 ) https://github.com/CodeMonkeys-Graduation/Graduation-Project GitHub - CodeMonkeys-Graduation/Graduation-Project: [✔Complete] Graduation-Project [✔Complete] Graduation-Project. Contribute to CodeMonkeys-Graduation/Graduation-Project development by creating an account on GitHub. github.com GameInstance (매니저 생성기) 자신이 존재할 Scene에 대한 정보를 가진 매니저 프리팹을 Dictionary.. 2021. 12. 1.