1. STL pair
p = make_pair(a, b) : a와 b를 묶어서 한 쌍으로 만드는 것이며 아래의 map에서 종종 쓰인다.
2. STL map
Red-Black Tree : https://ko.wikipedia.org/wiki/%EB%A0%88%EB%93%9C-%EB%B8%94%EB%9E%99_%ED%8A%B8%EB%A6%AC
장점
1. 많은 양의 데이터 처리에 좋음
2. 검색 속도가 빠름
3. 한쌍의 key, value를 저장하여 특정 부분에서 효율성이 좋음
4. 자동으로 정렬됨
1. 데이터의 양이 적으면 오버헤드 발생으로 자원 낭비
#include <map>
map<int, string> m;
m.begin() : 맨 앞의 iterator 반환
m.end() : 맨 뒤의 iterator 반환
//m.end()는 마지막 원소가 아니라 맨 끝. m.end()의 전이 마지막 원소가 됨.
m.rbegin() : (역방향) 맨 앞의 itertator 반환
m.rend() : (역방향) 맨 뒤의 iterator 반환
m.insert(make_pair(key, value)) : key와 value를 한 쌍으로 값을 넣어줌
m.find(key) : key를 가지고 있는지 찾기
m.lower_bound(key) : 지정한 key의 요소를 가지고 있다면 해당 위치 iterator 반환
m.upper_bound(key) : 지정한 key의 요소를 가지고 있다면 해당 위치 다음 iterator 반환
m.clear() : key 모두 삭제
m.erase(key) : key에 해당하는 원소 삭제
m.erase(key1, key2) : key1 ~ key2 사이의 원소 모두 삭제
1) 맵 탐색
2) 맵 응용
두 값을 한 쌍으로 묶는 방법
#include <utility>
pair<int, int> p;
pair<int, int> p;
p = make_pair(a, b) : a와 b를 묶어서 한 쌍으로 만드는 것이며 아래의 map에서 종종 쓰인다.
p.first : pair의 첫번째 원소(a)를 반환
p.second : pair의 두번째 원소(b)를 반환
p.second : pair의 두번째 원소(b)를 반환
2. STL map
key와 value가 한 쌍으로 이루어진 균형이진트리 (Red-Black Tree)
Red-Black Tree : https://ko.wikipedia.org/wiki/%EB%A0%88%EB%93%9C-%EB%B8%94%EB%9E%99_%ED%8A%B8%EB%A6%AC
장점
1. 많은 양의 데이터 처리에 좋음
2. 검색 속도가 빠름
3. 한쌍의 key, value를 저장하여 특정 부분에서 효율성이 좋음
4. 자동으로 정렬됨
단점
1. 데이터의 양이 적으면 오버헤드 발생으로 자원 낭비
#include <map>
map<int, string> m;
m.size() : map 크기 반환
m.empty() : map이 비었는지 아닌지 확인
m.empty() : map이 비었는지 아닌지 확인
m.begin() : 맨 앞의 iterator 반환
m.end() : 맨 뒤의 iterator 반환
//m.end()는 마지막 원소가 아니라 맨 끝. m.end()의 전이 마지막 원소가 됨.
m.rbegin() : (역방향) 맨 앞의 itertator 반환
m.rend() : (역방향) 맨 뒤의 iterator 반환
m.insert(make_pair(key, value)) : key와 value를 한 쌍으로 값을 넣어줌
m.find(key) : key를 가지고 있는지 찾기
m.lower_bound(key) : 지정한 key의 요소를 가지고 있다면 해당 위치 iterator 반환
m.upper_bound(key) : 지정한 key의 요소를 가지고 있다면 해당 위치 다음 iterator 반환
m.clear() : key 모두 삭제
m.erase(key) : key에 해당하는 원소 삭제
m.erase(key1, key2) : key1 ~ key2 사이의 원소 모두 삭제
1) 맵 탐색
map::iterator iter;
for(iter = m.begin(); iter != m.end(); iter++){
//do what you want
}
2) 맵 응용
map<int, vector<int, string> > m;
map<int, vector<int, list<int> > > m;
//map에 vector나 list를 넣어서 여러개의 값을 가지게 만들 수 있음.
//단 "> >"와 같이 꺽쇠를 띄어쓰기 해줘야 함.
댓글
댓글 쓰기