vector

  1. std::vector의 내부 구조를 설명해주세요.
  2. vector의 장단점은 무엇인가요?
  3. vector가 연속 메모리를 사용하는 이유는 무엇인가요?
  4. vector의 시간 복잡도를 설명해주세요.
  5. sizecapacity의 차이는 무엇인가요?
  6. vector가 재할당되는 조건은 무엇인가요?
  7. 재할당이 발생하면 기존 포인터와 반복자는 어떻게 되나요?
  8. vector 내부 원소의 주소를 장기간 저장하면 위험한 이유는 무엇인가요?
  9. reserveresize의 차이는 무엇인가요?
  10. push_backemplace_back의 차이는 무엇인가요?
  11. clear를 호출하면 capacity도 줄어드나요?
  12. vector의 중간 원소 삭제 비용은 얼마인가요?
  13. erase-remove 관용구를 설명해주세요.
  14. vector와 array 중 무엇을 선택하나요?
  15. vector와 deque 중 무엇을 선택하나요?

list·deque

  1. std::list의 장단점은 무엇인가요?
  2. list의 임의 접근이 느린 이유는 무엇인가요?
  3. list가 vector보다 유리한 상황은 언제인가요?
  4. 실제 게임 코드에서 list보다 vector가 자주 유리한 이유는 무엇인가요?
  5. std::deque의 내부 구조는 어떻게 되나요?
  6. deque는 vector와 비교해 어떤 장단점이 있나요?

map·unordered_map

  1. std::map은 어떤 자료구조로 구현되나요?
  2. std::map의 탐색 복잡도는 얼마인가요?
  3. std::unordered_map은 어떻게 동작하나요?
  4. map과 unordered_map의 차이는 무엇인가요?
  5. 해시 함수란 무엇인가요?
  6. 해시 충돌은 어떻게 해결하나요?
  7. 체이닝과 개방 주소법의 차이는 무엇인가요?
  8. load factor란 무엇인가요?
  9. rehash는 언제 발생하나요?
  10. unordered_map의 최악 시간 복잡도는 왜 O(n)인가요?
  11. 정렬된 순회가 필요하면 어떤 컨테이너를 사용하나요?
  12. 사용자 정의 타입을 map 키로 사용하려면 무엇이 필요한가요?
  13. 사용자 정의 타입을 unordered_map 키로 사용하려면 무엇이 필요한가요?
  14. 부동소수점 값을 map이나 unordered_map 키로 사용하면 왜 위험한가요?
  15. 문자열 키와 정수 키의 성능 차이는 어떻게 발생하나요?

반복자·알고리즘

  1. 반복자란 무엇인가요?
  2. 입력, 출력, 순방향, 양방향, 임의 접근 반복자의 차이는 무엇인가요?
  3. 반복자 무효화란 무엇인가요?
  4. vector, list, map의 반복자 무효화 조건을 설명해주세요.
  5. std::sort의 평균 복잡도는 얼마인가요?
  6. std::stable_sortstd::sort의 차이는 무엇인가요?
  7. lower_boundupper_bound의 차이는 무엇인가요?
  8. findbinary_search는 언제 사용하나요?
  9. 람다 캡처 방식 [=], [&], [this]의 차이는 무엇인가요?
  10. 람다에서 참조 캡처가 위험해질 수 있는 경우는 언제인가요?