[c++] 컨테이너의 장단점 비교
C++에는 여러 종류의 컨테이너가 있으며, 각각의 컨테이너에는 고유한 장단점이 있습니다. 이번에는 각각의 컨테이너 종류에 대해 장점과 단점을 비교해보겠습니다.
Contents
시퀀스 컨테이너
벡터 (vector)
- 장점: 연속된 메모리에 데이터를 저장하여 접근 및 조회가 빠름
- 단점: 삽입 및 삭제 시, 데이터를 옮기는 Overhead 발생 가능
#include <vector>
std::vector<int> vec;
리스트 (list)
- 장점: 삽입 및 삭제 시, 데이터를 이동할 필요 없음
- 단점: 임의의 위치로의 접근 및 조회가 느림
#include <list>
std::list<int> lst;
덱 (deque)
- 장점: 양쪽 끝에 대한 삽입 및 삭제가 빠름
- 단점: 임의의 위치로의 접근 및 조회가 느림
#include <deque>
std::deque<int> dq;
연관 컨테이너
맵 (map)
- 장점: Key-Value 쌍으로 데이터를 저장하여 검색이 빠름
- 단점: 메모리 사용이 더 많을 수 있음
#include <map>
std::map<int, std::string> map;
셋 (set)
- 장점: 정렬된 상태로 데이터를 저장하여 검색이 빠름
- 단점: 중복된 데이터를 저장할 수 없음
#include <set>
std::set<int> set;
이러한 장단점을 고려하여 프로젝트의 요구사항에 맞는 최적의 컨테이너를 선택할 수 있습니다.
더 자세한 내용은 C++ 공식 문서를 참고해주세요.