STL이란?
자료구조 클래스이며 반복자, 알고리즘 간 협력이 기반한 템플릿 라이브러리
Array (배열)
스택에 데이터를 저장
사용법 :
자료형 변수명 [ 스택의 크기 ]
ex) int arr[5] = { 0 , };
// 자료형 변수명 [ 스택의 크기 ]
int arr[5] = { 0 , };
장점 :
자료를 순차적으로 저장하고 인덱스의 번호로 데이터에 접근이 가능.
자료에 접근하기가 용이하고 속도도 빠름.
단점 :
배열의 크기를 미리 지정하기 때문에 사용하지 않는 메모리가 낭비 될 수 있음.
중간 값을 삭제하거나 삽입이 쉽지 않음.
vector (벡터)
동적 배열로 저장
연속적 메모리
요소를 추가할때마다 메모리 재할당 가능.
사용법 :
// vector<자료형> 변수명
vector<int> vec;
장점 :
동적으로 배열을 사용하기 떄문에 메모리를 낭비하지 않음.
데이터의 위치를 알고 있다면 접근이 편함.
랜덤하게 vector 요소에 접근 가능.
단점 :
데이터가 순차적으로 저장되기 때문에 검색속도가 배열에 비해 느림.
list (리스트)
자료구조가 연결 리스트로 되어있음.
비연속적 메모리
요소를 추가할때마다 메모리 재할당할 필요 없음.
사용법 :
//std::list<자료형> 변수명
std::list<int> myList
장점 :
길이가 가변적임.
컨테이너 위치에서의 삽입/제거가 빠름
데이터들의 컨테이너 내 이동이 빠름
단점 :
데이터가 순차적으로 저장되기 때문에 검색속도가 배열에 비해 느림.
데이터에 접근할때 랜덤접근이 불가능하고 순차 접근만 가능하다.
map (맵)
트리구조로 되어있음.
Key와 Value가 Pair.
key를 기준으로 오름차순 정렬을 자동으로 수행
사용법 :
//std::map<key, value> 변수명
ex) std::map<string, int> myMap
장점 :
데이터의 양이 많을 때 Key값을 이용한 검색이 빠르다.
단점 :
데이터를 자동으로 정렬하기 때무에 데이터를 삽입하거나 삭제할 때 추가 작업 필요.
즉, 삽입 삭제 연산이 느림.
'C++, MFC' 카테고리의 다른 글
[C++, MFC] SNMP 서비스 (1) | 2024.08.27 |
---|---|
[C++] template 함수 (0) | 2024.08.13 |
[C++,MFC] std::string <--> CString (0) | 2024.07.31 |
[C++] Pointer <포인터> (0) | 2024.07.29 |
[MFC] CString 문자열 비교 Compare() (0) | 2024.07.23 |