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 를 참고하는 것이 좋으며, 이후 시간과 이해할 수 있을때 포스팅 할 예정입니다.
참조
딕셔너리(Dictionary) 자료형이란?
※ 해당 포스팅은 네이버 블로그에서 작성된 포스팅으로, 코드가 포함되어 있어 다음 주소에서 읽는 것이 용이하실 수 있습니다. (https://junwha0511.blog.me/221698243080) 기존의 배열, 리스트와의 차이
develop-story.tistory.com
gracefulprograming.tistory.com/3
[C++] map vs hash_map(unordered_map)
개요 hash_map은 비표준 Container인데 반해(stdext namespace에 포함) unordered_map은 C++11에서 STL 표준 Container로 추가되었으며, (사실 TR1부터 추가되었지만 C++11에서 좀 더 최적화가 이루어졌다고 합..
gracefulprograming.tistory.com
'IT Study > Data Structure' 카테고리의 다른 글
Data Structure - Red Black Tree (작업중, 알고리즘으로 이전할 것) (0) | 2021.01.27 |
---|---|
Data Structures - Hash Table (0) | 2021.01.27 |