목록내 개인적인 공부/자료구조 (28)
그냥 게임개발자
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bvhPuJ/btsGBdrhES3/xC6GMHvv3xCq9PJTGcIeH1/img.png)
for in range 음.. 반복문인데 C++11에서 효율적인 반복문이라는 것이 추가가 되었어요. 쓸만함! 근데 저는 아직 습관이 덜 되어서 for (int i = 0; i < 아직 이런...것을 쓰지만 제가 C++를 많이 해보지는 않았지만 C#에서도 똑같은 for in range가 있는데 foreach라고 근데 그거 속도 느리대요. 실제 해봤는데 조금 차이가 있어요. 이유는 나중에 설명할게요. 아무튼! C++에서 사용하는 범위기반 for 루프 vecotr만 쓸 수 있는 것이 아니라 순회할 수 있는 컨테이너라면 다 사용할 수 있습니다. vector, Array, map 등 다 사용 가능합니다. for (range_declaration : range_expression) loop_statement 이거 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/F45PM/btsGz2jHvPc/fIGi9vnHRmb4Im6pJZBZuK/img.png)
vector의 함수들은 여러가지가 있어요. push_back pop_back erase find clear fill 이렇게 자주 사용하는 함수들이 있는데 물론 더 있는데 그건 직접 하면서 공부해보길! 재미없는 것부터 배우면 재미가 없어요. 어차피 배울 거 산더미인데 쉬운 것부터 배워요 쉬운 것부터 저것보다 더 많을지도 그래서 하나하나 간단명료하게 설명하겠습니다. 근데 참 보면 평일에 쓰는 글들과 주말에 쓰는 글들의 퀄리티를 보면 주말이 확실히 더 좋은 듯 싶어요. push_back() vector의 뒤에서부터 요소를 더해요. 물론 emplace_back()도 뒤에서부터 요소를 더하는 함수입니다. emplcae_back()이 더 빠른데 시간차이는 그리 엄청나지는 않으니 편한 거 사용하시면 될 듯합니다. #..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bQsAJB/btsGA1dh20D/pmKPeIw1W93qemvC4YAawK/img.png)
vector는 동적으로 요소를 할당할 수 있는 동적 배열이에요 이게 무슨 말이냐면 배열같은 경우는 정적배열이에요 아래와 같은 경우가 정적배열입니다. int[5] arr; 이로써 컴파일 시점에 5라는 크기를 가진 배열이 생성되는 건데 이 이상은 추가를 못합니다. 확인해봅시다. #include using namespace std; int main() { int arr[5]; for (int i = 0 ; i < 6; ++i) arr[i] = i + 1; } 위 코드와 같이 5개의 크기를 가진 배열에 6번을 돌려서 값을 초기화 해봅시다. 보시면 Run-Time Check Failure #2 - Stack around the vraialbe 'arr' was corrupted. 라는 에러가 뜹니다. arr 주변..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/q6SfC/btsGzLPDXq1/LYu3KuGavL27kbZmx9WFc1/img.png)
데이터들과의 관계, 함수, 명령 등의 집합을 의미합니다. DataStructure라고 하죠. 데이퉐스투럭쳐 아우 졸려요 이것만 쓰고 저도 자러갈까 생각중 쉽게 얘기하자면 데이터에 대해 효율적으로 접근이나 수정 즉, 데이터의 처리를 효율적으로 할 수 있게 만든 구조를 의미합니다. 뭐 단순 자료구조는 말하지 않아도 알아야 합니다. 모르면 공부해오세요. 이 카테고리에서는 이 자료구조들을 설명하려고 합니다. 선형자료구조는 Array, Linked_list, Stack, Queue, Heap이 있고 비선형에는 Tree, Graph가 있습니다. 이것을 복습해볼 예정입니다. 복습