STL 연관 컨테이너
- STL 연관 컨테이너 라이브러리는 매우 활용도가 높은 자료구조를 제공
- 연관 컨테이너는 키와 값 형태의 관련 있는 데이터를 쌍으로 저장하는 컨테이너
- 가장 많이 사용되는 시퀀스 컨테이너는 집합과 맵임
Set(집합), Multi Set(멀티 집합), Map(맵), Multi map(멀티 맵)
집합
- 저장하는 데이터를 키로 사용하는 연관 컨테이너
- 저장된 위치에 데이터를 삽입한다는 점에서 검색 속도가 빠르다는 특징이 있음
- 기본적으로 키의 중복을 허용하지 않음
#include <iostream>
#include <string>
#include <stdio.h>
#include <set>
using namespace std;
int main(void) {
int array[5] = { 2, 4, 6, 8, 10 };
set<int> s(array, array + 5);
set<int>::iterator iter = s.begin();
for (; iter != s.end(); iter++) {
cout << *iter << ' ';
}
cout << '\n';
s.insert(1);
s.insert(3);
s.insert(5);
iter = s.begin();
for (; iter != s.end(); iter++) {
cout << *iter << ' ';
}
cout << '\n';
system("pause");
return 0;
}
맵
- 저장하는 데이터를 키와 값 쌍의 형태로 사용하는 연관 컨테이너
- 정렬된 위치에 데이터를 삽입한다는 점에서 검색 속도가 빠르다는 특징이 있음
- 기본적으로 키의 중복을 허용하지 않음
#include <iostream>
#include <string>
#include <stdio.h>
#include <map>
using namespace std;
int main(void) {
map<string, int> m;
m["khon"] = 1; m["ohn01"] = 2; m["hon02"] = 3;
map<string, int>:: iterator iter = m.begin();
for (; iter != m.end(); iter++) {
cout << iter->first << ":" << iter->second << '\n';
}
m["on03"] = 4;
cout << m["없는 사람"] << '\n';
iter = m.begin();
for (; iter != m.end(); iter++) {
cout << iter->first << ":" << iter->second << '\n';
}
system("pause");
return 0;
}
'C++' 카테고리의 다른 글
소켓 프로그래밍의 개요 (0) | 2020.12.17 |
---|---|
예외 처리 (0) | 2020.12.16 |
STL 시퀀스 컨테이너 (0) | 2020.12.16 |
STL 컨테이너 어댑터 (0) | 2020.12.16 |
스마트 포인터 (0) | 2020.12.16 |