접근 패턴을 센다
랜덤 접근, 순차 순회, 중간 삽입, 키 검색 중 실제 빈도가 높은 동작을 먼저 잡는다.
vector, list, map, unordered_map은 이름보다 비용 모델이 중요하다. 삽입과 조회 횟수, 반복자 안정성, 원소 소유 방식을 함께 고른다.
랜덤 접근, 순차 순회, 중간 삽입, 키 검색 중 실제 빈도가 높은 동작을 먼저 잡는다.
컨테이너 변경 뒤 iterator, pointer, reference가 계속 유효해야 하는지 확인한다.
정렬된 순서가 필요한지, 평균 O(1) 검색이 필요한지에 따라 map과 unordered_map을 나눈다.
std::vector<Event> events;
events.reserve(expectedCount);
for (auto&& raw : input) {
events.push_back(parse_event(raw));
}