태그: vector
10편
-
C++ 배열: 메모리 레이아웃, std::array, 캐시 최적화
C 배열이 함수 인자로 넘어갈 때 포인터로 쇠퇴하는 규칙과 2차원 배열의 함정, std::array 설계와 C 배열·vector의 선택 기준, 행 우선 레이아웃에 맞춘 캐시 친화 순회, C++23 std::mdspan까지 다룹니다.
-
C++ STL 컨테이너: 연산별 성능 비교와 상황별 선택 기준
vector, map, unordered_map, deque, list의 내부 구조와 반복자 무효화 규칙, 메모리 할당 전략, 캐시 성능 차이를 측정 방법과 함께 비교하고 상황별 컨테이너 선택 기준을 정리합니다.
-
C++ 반복자 무효화: vector iterators incompatible 크래시 원인과 해결
vector iterators incompatible 같은 크래시를 일으키는 반복자 무효화를 vector·list·map·unordered_map·deque별 규칙으로 정리하고, 범위 기반 for에서 erase하는 실수를 포함한 10가지 오류 패턴과 안전한 삭제 방법을 설명합니다.
-
C++ vector reserve vs resize: capacity와 size의 차이와 쓰임
vector의 reserve는 capacity만 늘리고 size는 그대로 두지만, resize는 요소를 실제로 만들고 초기화해 size를 바꿉니다. 이 차이 때문에 reserve 뒤 인덱스로 접근하거나 resize 뒤 push_back을 하면 생기는 버그와 재할당 횟수 차이를 예제로 보여 줍니다.
-
C++ emplace_back vs push_back: 실제 성능 차이와 언제 다른지
emplace_back은 인자를 받아 컨테이너 안에서 바로 객체를 생성하고, push_back은 이미 만든 객체를 복사하거나 이동합니다. 단순 타입과 복잡한 객체 벤치마크로 실제 차이가 언제 생기는지 확인하고, map·set에서의 emplace 사용도 다룹니다.
-
C++ vector vs list vs deque: 내부 구조와 벤치마크로 보는 컨테이너 선택
vector, list, deque의 내부 구조와 시간 복잡도를 비교하고, 뒤·앞·중간 삽입과 순회, 랜덤 접근 벤치마크로 실제 성능 차이를 확인합니다. 중간 삽입이 많아도 vector가 list보다 빠른 경우가 많은 이유를 캐시 효율로 설명합니다.
-
C++ C 배열 vs std::array vs vector: 성능과 안전성 비교
C 스타일 배열, std::array, std::vector를 크기 고정 여부, 스택·힙 배치, 범위 검사 관점에서 비교하고 접근·생성·순회 벤치마크로 성능 차이를 확인합니다. operator[]와 at()의 차이, 함수로 넘길 때 크기 정보가 사라지는 문제도 다룹니다.
-
C++ std::vector 기초: 생성·삽입·삭제와 배열 대신 쓰는 이유
크기가 고정되고 범위 검사도 없는 C 배열 대신 std::vector를 쓰는 이유를 선언, 추가·삭제, operator[]와 at() 차이, 2차원 벡터, sort·find 예제로 보여줍니다. size()를 int로 받는 실수, 반복 중 삭제, reserve와 resize 혼동도 다룹니다.
-
C++ 컨테이너 선택 가이드 | vector/list/deque/map/set 상황별 선택과 성능 최적화
앞쪽 삽입을 반복하다 시간 초과가 나는 경우처럼 컨테이너를 잘못 고른 상황에서 출발해 vector·deque·list와 map·set·unordered 계열을 연산 복잡도와 메모리 배치로 비교합니다. BFS·LRU 캐시 예제와 반복자 무효화, 해시 미정의 에러도 다룹니다.
-
C++ 코테용 STL 컨테이너/알고리즘 시간복잡도 치트시트 [#32-3]
코딩테스트에서 자료구조를 잘못 골라 시간 초과가 나지 않도록 vector·deque·list, map·unordered_map, priority_queue·stack·queue의 연산별 시간복잡도와 반복자 무효화 규칙을 표로 모았습니다. 문제 유형별 추천 조합과 흔한 실수도 담았습니다.