목록분류 전체보기 (225)
그냥 게임개발자
![](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가 있습니다. 이것을 복습해볼 예정입니다. 복습
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btlr9Y/btsGAQJHXEU/WPunSbNjts5atk3Pb5fhyk/img.png)
저번 포스팅의 반대입니다. 배열 중 가장 작은 요소를 추출하는 함수입니당. #include #include using namespace std; int main() { vector vec = vector(); for (int i = 1; i
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bLJqPa/btsGB1wCpUA/Zy1fAjkPUAm1Pk9guY7Zek/img.png)
귀찮아도 해야되는게 게임입니다. 저한테는 그게 코딩입니다. 근데 쓰기가 귀찮네요 그래도 시작해봅시다. max_element()이름만봐도 설명이 된다. 최대 요소 큰 요소 그렇습니다. 이 함수는 이터레이터를 반환하고 이터레이터는 *를 통해 값을 끄집어 낼 수 가 있고 이를 기반으로 해당 컨테이너의 최대값의 인덱스 또한 뽑아낼 수 있습니다. #include #include using namespace std; int main() { vector vec = vector(); for (int i = 1; i
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b0yUOG/btsGCsHiUYY/llcnJp0SuYBIV6nyKMn1D1/img.png)
배열의 합을 구하는 방법은 우리가 어릴 때 많이 배웠습니다. #include #include #include using namespace std; int main() { int sum = 0; vector v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (vector::iterator it = vec.begin(), it != vec.end(); ++it) { sum += *it; } cout
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Zz3dc/btsGqjZI8nC/tI8nFxmaYe8f3kJjhJLBf0/img.png)
정렬된 배열에서 어떤 값이 나오는 첫번째 지점 또는 초과하는 지점의 위치를 찾으려면 어떻게 해야할까? 또한 이분 탐색을 쉽게 함수로 구현하려면 어떻게 해야할까? 이분탐색은 또뭔가? 이분탐색 하나의 알고리즘으로 정렬되어 있는 배열이나 리스트에서 탐색 범위를 절반씩 좁혀가면서 데이터를 탐색하는 방법 일단 위의 사진이 lowerbound와 upperbound를 설명하는 그림이다. 그래도 우리는 할 수 있다 하나씩 생각해보자. 보면 엄 안보이니까 그림 한번만 더 쓸게요 위 그림에서 보면 중복된 값이 있는 배열을 정렬한 상태에서 3을 기준으로 lower_bound(3)을 호출하면 3보다 크면서 큰 값이 최초로 발견된 index를 반환해줍니다. 즉 위에서는 3을 반환하죠 0, 1, 2, 3 이렇게 말이에요 uppe..