Game Tech Blog

Data Structure - Dictionary 본문

IT Study/Data Structure

Data Structure - Dictionary

jonghow 2021. 1. 27. 15:45
반응형

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 를 참고하는 것이 좋으며, 이후 시간과 이해할 수 있을때 포스팅 할 예정입니다.

 

 

 

 

참조

develop-story.tistory.com/9

 

딕셔너리(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

 

반응형
Comments