Game Tech Blog
Data Structure - Dictionary 본문
Dictionary ?
- Dictionary 란 Key, Value 로 나누어진 값으로 이루어져 있다. Python 에서 사용된다고 한다.
- Vector, List , Array 에서는 숫자 인덱스로 Value 를 참조했으나, Dictionary 에서는 문자로 값을 참조할 수 있다고 한다.
Dictionary Vs Map
- 공통
1. Key , Value 를 가지고 있으며, Key로 찾아서 Value를 참조하는 자료구조
2. 중복 Key 값이 존재할 때 값을 넣지 않는다. (중복 Key 불허함, Key의 Unique한 성질을 보장해야함)
- 차이
- Map
1. Key값을 기준으로 요소들이 추가,삽입,삭제될 때, 재정렬을 수행한다.
2. 내부가 트리로 구성된다 (레드 블랙 트리로 구성)
3. 트리로 구성되어 있어 Log N 탐색속도를 가진다.
- Dictionary
1. 내부가 해시테이블로 구성된다.
Dictionary Vs unordered_map
- 공통
1. Key, Value 를 가지고 있으며, Key로 찾아서 Value를 참조하는 구조
2. 내부구조가 해시 테이블로 구성되어있다.
3. 중복 Key 값이 존재할 때 값을 넣지 않는다. (중복 key 불허, Key의 Unique한 성질을 보장)
- 차이
1. 아직 사용하는 언어에 대한 차이밖에 인지하지 못했다. 알게되면 추가할 것
// 해시테이블과 레드블랙 트리의 정리는 다음 페이지에서 설명할 것이다.
Dictionary 의 사용
Dictionary<string,int> dFruit = new Dictionary<string,int>();
dFruit.Add("Apple", 5);
dFruit.Add("Banana", 2);
dFruit.Add("Melon", 3);
dFruit.Add("StrawBerry", 4);
dFruit.Add("Tangerine", 2);
Console.WriteLine(dFruit["Banana"]);
dFruit["Banana"] = 5;
Console.WriteLine(dFruit["Banana"]);
1. Key : string , Value : int 형을 가진 과일 바구니를 만들었다.
2. 각 과일의 이름을 Key 값으로, 갯수를 Value 값으로 넣었다.
3. 원하는 과일의 Key 값을 탐색해 Value 값을 뽑아냈다.
4. Banana 갯수를 수정했다.
출력 결과
2
5
Dictionary 의 활용
Dictionary의 활용도는 Dictionary 의미 그대로, 사전이 대표적이며, 게임에서 적용해볼 것은 도감 시스템, DX 렌더링 폰트 서체 매니저로 사용할 만 할 것같다.
Dictionary 의 성능 차이
이는 gracefulprograming.tistory.com/3 를 참고하는 것이 좋으며, 이후 시간과 이해할 수 있을때 포스팅 할 예정입니다.
참조
gracefulprograming.tistory.com/3
'IT Study > Data Structure' 카테고리의 다른 글
Data Structure - Red Black Tree (작업중, 알고리즘으로 이전할 것) (0) | 2021.01.27 |
---|---|
Data Structures - Hash Table (0) | 2021.01.27 |