C++ STL에서 제공하는 HashTable 자료구조를 활용한 데이터 컨테이너
그렇기 때문에 아래와 같은 특징을 가진다.
- 추가하는 순서대로 정렬되어 들어가지 않는다.
- 컨테이너에 삽입, 삭제, 색인을 시간복잡도 O(1)으로 해결할 수 있다. (최악의 경우 O(n)일수도 있다.)
#include <unordered_map>
int main()
{
unordered_map<string, int> hashMap; // Key - Value 타입이다.
return 0;
}
해당 컨테이너의 함수들은 아래와 같다. (선언은 위에서한 hashMap을 예로 들었을때)
- hashMap.at(index) → index 번째 원소를 참조 한다. 범위 점검을 한다.
- hashMap[index] → index 번째 원소를 참조하지만 범위 점검을 하지 않는다. 주의 할 점은 없다면 0으로 초기화시킨다.
- hashMap.clear → 컨테이너 내용 제거
- hashMap.insert(make_pair(key,value)) → 위에서 언급한거 처럼 Key - Value 타입이기때문에 Pair로 추가할수 있다.
- hashMap.begin() → 컨테이너에서 첫번째 원소를 반환 (정렬되어 있지 않으므로 뭐가 첫번째 일지 모른다.
- hashMap.end() → 컨테이너에서 마지막 원소를 반환 (정렬되어 있지 않으므로 뭐가 마지막일지 모른다.
- hashMap.find(key) → 컨테이너에 특정원소를 찾는다.
- hashMap.count(key) → 컨테이너에 key값을 가진 원소의 개수를 반환
- hashMap.erase(key) → 컨테이너에서 key값을 가진 원소를 제거
해당 컨테이너에서 C#의 Dictionary처럼 containKey와 같은 기능을 원한다면