2019. 6. 25. 03:43ใPROGRAMMING/C++ STL
Map
ํ์ค ์ฐ๊ด ์ปจํ ์ด๋. (๋น ์ ํ์ ).
์๊ฐ ๊ท ํ ์ด์ง ํ์ํธ๋ฆฌ (๋ ๋ - ๋ธ๋ ํธ๋ฆฌ) ๊ธฐ๋ฐ์ด๋ค.
๋ ธ๋ ๊ธฐ๋ฐ. (๋น ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ.)
์์ ํ๋๊ฐ Key์ Value ํ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
(์ค๋ณต Key๋ ํ์ฉํ์ง ์๋๋ค.)
์ฝ์ , ์ญ์ ์ Key ๊ธฐ์ค์ผ๋ก ๋งค๋ฒ ์ ๋ ฌ์ด ์ผ์ด๋๋ค.
(๋น๋ฒํ ์ฝ์ , ์ญ์ ๋ถ๋ฆฌ.)
Key๊ฐ์ ํตํด์ [] ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ์ด์ง ํ์ ํธ๋ฆฌ ๊ธฐ๋ฐ์ด๋ค.
(ํ์ ์ ๋ฆฌ.)
[ Map์ ์ ์ธ ]
map<Key, Value>๋ก ์ ์ธ ํ๋ค.
Key์ Value์๋ ๊ตฌ์กฐ์ฒด๋ ํด๋์ค๊ฐ ์ฌ ์ ๋ ์๋ค.
[ Map์ ์์ ์ฝ์ ]
(1) pair ๊ตฌ์กฐ์ฒด๋ฅผ ์ด์ฉํ Map ์์ ์ฝ์ .
map์ ์์๋ฅผ ์ฝ์
ํ๊ธฐ ์ ์ pair๊ตฌ์กฐ์ฒด๋ฅผ ์์ฑํด์ผํ๋ค.
์ฆ, map์ ์์๋ pair๋ก ์ด๋ฃจ์ด์ก๋ค.
first - Key
second - Value
๊ธฐ๋ณธ ์์ฑ์์๋ key์ value๋ ์๋ 0์ด๊ธฐํ ๋๋ค.
pair๊ฐ์ฒด๋ฅผ insertํจ์์ ์ธ์๋ก ๋๊ธด๋ค. (๋ณต์ฌ๊ฐ ์ผ์ด๋จ.)
์ธ์์๋ ์์ฑ์๋ฅผ ํตํด์ pair ๊ตฌ์กฐ์ฒด๋ฅผ ์ด๊ธฐํ ํ ์ ์๋ค.
(2) ์์ ๊ฐ์ฒด๋ฅผ ํ์ฉํ ์ฝ์ .
(3) make_pair: ์ธ์ ํ์ ์ ๋ฐ๋ฅธ pair๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ํ ํ๋ฆฟ ํจ์.
(4) value_type
map์ ์์์ ๊ฐ์ฅ ์ ํฉํ pair์๋ฃํ. (map ๋ด๋ถ์ typedef)
value_type์ key๋ const ์ฑํฅ์ ๊ฐ๋๋ค. map์ ์์๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
(์ด๊ธฐํํ ์ดํ์๋ ๊ฐ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ.)
[ Map์ ์์ ์ํ ]
key ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ. (const)
value๋ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅ ํ๋ค.
[ Map์ ์์ ์ ๊ฑฐ ]
key ๊ฐ์ ํตํด์ ์ ๊ฑฐ ๊ฐ๋ฅํ๋ค.
[ ์ค๋ณต Key๊ฐ ํ์ฉ X ]
[ map์ [] ์ ๊ทผ ]
Key๊ฐ์ ํตํด์ [] ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. (๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅ.)
key๋ฅผ ํตํ []์ ๊ทผ์ value์ ๋ ํผ๋ฐ์ค๋ฅผ ๋ฐํํ๋ค.
์กด์ฌํ์ง ์๋ key๋ก []์ ๊ทผ์ ์๋ก์ด ์์๊ฐ ํ ๋น๋๋ค. value๋ 0์ด๊ธฐํ.
์ฆ, []์ฐ์ฐ์ ํตํ ์์ ์ฝ์ ๋ ๊ฐ๋ฅํ๋ค!
[ map์ ๋ฐ๋ณต์ ]
map์ ๋ ธ๋๊ธฐ๋ฐ์ ์ปจํ ์ด๋๋ก์จ '์์์ ๊ทผ ๋ฐ๋ณต์'๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
map์ '์๋ฐฉํฅ ๋ฐ๋ณต์'๋ฅผ ์ฌ์ฉํ๋ค.
์ค๋ก์ง ์์ฐจ์ ๊ทผ.
[ map์ ํ์ ]
find : key๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์.
key์ ํด๋นํ๋ ๋ฐ๋ณต์๋ฅผ ๋ฐํ.
key๊ฐ char*์ธ ๊ฒฝ์ฐ,
๋ฌธ์์ด ์์์ ์ฃผ์๋ ๊ฐ๋ค. ๊ณ ๋ก ํ์์ด ์ด๋ฃจ์ด์ง๋ค.
'PROGRAMMING > C++ STL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ array (0) | 2020.08.06 |
---|---|
๋ค์ ์ ๋ฆฌํ๋ C++ STL [ ๊ฐ์ ] (0) | 2020.08.05 |
04. [C++] STL (Standard Template Library) - ์๊ณ ๋ฆฌ์ฆ(algorithm) (0) | 2019.06.26 |
02. [C++] STL (Standard Template Library) - List (0) | 2019.06.21 |
01. [C++] STL (Standard Template Library) - Vector (0) | 2019.06.20 |