//c++ STL. 추후 수정
[개념]
종류 | 설명 |
---|---|
set | 데이터를 키로 사용하는 연관 컨테이너 (key만 있고 value는 없는 map) |
multiset | 키의 중복을 허락하는 set |
map | 데이터를 키와 값 쌍으로 사용하는 연관 컨테이너 |
multimap | 키의 중복을 허락하는 map |
hash_set | 자료를 정렬하지 않은 set |
hash_map | 자료를 정렬하지 않은 map |
hash_multiset | 자료를 정렬하지 않은 multiset |
hash_multimap | 자료를 정렬하지 않은 multimap |
[map 멤버 함수]
[map 예시 코드]
#include <map>
map<char,int> m;
map<char,int>::iterator it;
m['B'] = 2; //m : (B,2)
m.insert(make_pair('A',1)); //m : (A,1) (B,2)
m['C'] = 3; //m : (A,1) (B,2) (C,3)
m.erase('A'); //m : (B,2) (C,3)
//m전체를 순회하며 key와 value 출력
for(it = m.begin(); it != m.end(); it++)
cout << it->first << ' ' << it->second << '\n';
if(m.find('B') != m.end())
cout << "key값이 B인 노드가 존재합니다." << '\n';
else
cout << "key값이 B인 노드가 존재하지 않습니다." << '\n';
[set 멤버 함수]
[set 예시 코드]
set<int> s;
set<int>::iterator it;
s.insert(4); //s : 4
s.insert(1): //s : 1 4
s.insert(2); //s : 1 2 4
vector<int> v;
v.push_back(3); //v : 3
v.push_back(5); //v : 3 5
v.push_back(6); //v : 3 5 6
s.insert(v.begin(), v.end()); //s : 1 2 3 4 5 6
s.erase(4); //s : 1 2 3 5 6
s.erase(s.begin()); //s : 2 3 5 6
//지울 원소를 입력받음
int toErase;
scanf("%d", &toErase);
it = s.find(toErase);
//지울 원소가 존재하는 원소일 때만 지움
if(it != s.end())
s.erase(it);