unordered_map은 해시 함수를 이용해 빠른 검색이 필요하거나 중복된 데이터가 허용되는 경우에 유용.
데이터의 개수가 적을 경우에는 std::map이 std::unordered_map보다 빠를 수 있음
반대로 데이터의 개수가 많을 경우에는 std::unordered_map이 더 빠를 수 있음.
begin(): 첫 번째 원소를 가리키는 반복자를 반환합니다.
end(): 마지막 원소 다음을 가리키는 반복자를 반환합니다.
size(): map 컨테이너에 저장된 키-값 쌍의 개수를 반환합니다.
empty(): map 컨테이너가 비어있는지 여부를 반환합니다.
clear(): map 컨테이너에 저장된 모든 요소를 삭제합니다.
insert(): 새로운 키-값 쌍을 map 컨테이너에 삽입합니다.
erase(): 지정한 키나 반복자에 해당하는 원소를 map 컨테이너에서 삭제합니다.
find(): 지정한 키를 가지는 원소를 찾아 해당 원소를 가리키는 반복자를 반환합니다. 만약 해당하는 원소가 없을 경우 map::end()를 반환합니다.
그 외에도 operator[], at(), count() 등
//반드시 정렬 후 사용
합집합 : merge() 중복허용 / set_union() 중복제거
차집합 : set_difference()
교집합 : set_intersection()
대칭 차집합 : set_symmetric_difference()
vector<int> diff; //vec1 - vec2 차집합
set_difference(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), back_inserter(diff));