목록2024/04/13 (12)
그냥 게임개발자
vector라고 해서 무조건 크기가 0으로 만들고 빈 vector를 만들어서 동적할당으로 요소를 추가하는 것은 아니에요. 애초에 크기를 정할수도 있고 어떠한 값으로 초기화 해놓고 시작할수도 있어요. 배열과 똑같이 사용할 수 있다는 말이에요. 한 번 해보죠. #include #include using namespace std; int main() { vector vec(5, 100); for (int entity : vec) cout
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 이거 ..
vector의 함수들은 여러가지가 있어요. push_back pop_back erase find clear fill 이렇게 자주 사용하는 함수들이 있는데 물론 더 있는데 그건 직접 하면서 공부해보길! 재미없는 것부터 배우면 재미가 없어요. 어차피 배울 거 산더미인데 쉬운 것부터 배워요 쉬운 것부터 저것보다 더 많을지도 그래서 하나하나 간단명료하게 설명하겠습니다. 근데 참 보면 평일에 쓰는 글들과 주말에 쓰는 글들의 퀄리티를 보면 주말이 확실히 더 좋은 듯 싶어요. push_back() vector의 뒤에서부터 요소를 더해요. 물론 emplace_back()도 뒤에서부터 요소를 더하는 함수입니다. emplcae_back()이 더 빠른데 시간차이는 그리 엄청나지는 않으니 편한 거 사용하시면 될 듯합니다. #..
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 주변..