๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ(43)
-
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ unordered_map/set
[ STL ์๋ฃ๊ตฌ์กฐ unordered_map/set ] unordered_map๊ณผ unordered_set์ ์ด๋ฆ ๊ทธ๋๋ก ์์๊ฐ ์๋ค. key๊ฐ๊ณผ value๊ฐ์ด ์ฐ๊ด์ ์์ง๋ง, ์์๊ฐ ์๋ค? ์ด ๋ง์ ๊ฐ key ๊ฐ๋ง๋ค ํด์ ๋ฒํธํ๊ฐ ์์ด์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐ ์ฐพ์ ์ ์๋ค๋ ๋ง์ด๋ค. ์ฆ, STL unordered ์ปจํ ์ด๋๋ ํด์(hash) ์๋ฃ๊ตฌ์กฐ์ด๋ค. ํ๋ก๊ทธ๋๋ฐ์์ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฑ๋ฅ์ ๋ฐ๋น๋ก ํ๋ค. STL unordered ์ปจํ ์ด๋๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ํด ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์๋กํ๋ ๋จ์ ์ด ์๋ค. (๋ด๋ถ์ ์ผ๋ก vector์ list๋ฅผ ๊ฐ์ด ์ฐ๊ธฐ ๋๋ฌธ์ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์) ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ hashํจ์๋ฅผ ๊ฑฐ์ณ์ ๋ฒํธํ๋ฅผ ๋ฐ๋๋ค. ํด์๊ฐ์ ๋ฏธ๋ฆฌ ๋ด๋ถ์ vector๋ก ๋ง๋ค์ด ๋๋๋ค. (๋ฒํท์ ๋ง๋ค์ด ๋๋๋ค..
2020.08.11 -
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ map/set
[ STL ์๋ฃ๊ตฌ์กฐ map / set ] STL array, vector, list๊ฐ ์ฐ์ ์ปจํ ์ด๋(Sequential Container)์๋ค๋ฉด map๊ณผ set์ ์ฐ๊ด ์ปจํ ์ด๋(Associative Container)์ด๋ค. ์ฐ๊ด์ด๋ผ๋ ๋ง์ ์ ์ฅํ๋ ค๊ณ ํ๋ ์๋ฃ์ key๊ฐ์ด ์๋ก ๊ด๋ จ์ด ์๋ค๋ ์๋ฏธ์ด๋ค. map์ pair๋ฅผ ์์๋ก ์ ์ฅํ๋๋ฐ, key๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ค. set์ key๋ฅผ ๊ธฐ์ค์ผ๋ก ์์๋ฅผ ์ ๋ ฌ ์ํ๋ก ์ ์ฅํ์ง๋ง, value๊ฐ ๋ฐ๋ก ์์ง ์๋ค. ์ฆ, set์ key์ value๊ฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ์ ์ฅํ๋ค. ์ฐ๊ด ์ปจํ ์ด๋๋ ์ฐพ๊ณ ์ ํ๋ ์์๋ฅผ ๋นจ๋ฆฌ ์ฐพ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์ฌ๊ธฐ์ ๋น ๋ฅด๋ค๋ ๊ฒ์ ์ฐ์ ์ปจํ ์ด๋๋ณด๋ค ๋น ๋ฅด๋ค๋ ์๋ฏธ์ด๋ค. ์ฐ๊ด ์ปจํ ์ด๋์์ ์์๋ฅผ ์ฐพ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ ๋ณต์ก๋..
2020.08.10 -
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ list
[ STL ์๋ฃ๊ตฌ์กฐ list ] STL์ list๋ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ด๋ค. ์์๋ฅผ ํ ๋ฒ์ ํ๋์ฉ ์ ๋ค๋ก ์ํํ ์ ์๋ ์๋ฐฉํฅ ๋ฐ๋ณต์(bidirectional iterator)๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ ์์น์์๋ ์์ ์๊ฐ์ ์์๋ฅผ ์ฝ์ & ์ญ์ ํ ์ ์๋ค.vector์ ๋ฌ๋ฆฌ ํญ์ ์์ ์๊ฐ์ ์์๋ฅผ ์ ๊ทผํ ์ ์๋ ๋๋ค ๋ฐ๋ณต์๋ฅผ ์ ๊ณตํ์ง๋ ์์ง๋ง,๋ง์ ์๊ณ ๋ฆฌ์ฆ ํจ์๋ ์์ฐจ์ ์ผ๋ก ์ก์ธ์คํ ์๋ง ์์ผ๋ฉด ์ถฉ๋ถํ๋ค. [ STL list ์์ ์ถ๊ฐ ] list๋ ์๋ฐฉํฅ์ผ๋ก ์์์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ vector์ ๋ฌ๋ฆฌ ์ปจํ ์ด๋์ ์, ๋ค๋ก ์์๋ฅผ ์ถ๊ฐํ ์ ์๋ค. [ STL list ์์ ์ ๊ฑฐ ] 1. ์ ์ญํจ์ remove 4๋ผ๋ ์์๊ฐ ์ ๊ฑฐ๋์ง๋ง, remove() ํจ์๋ ์ ๊ฑฐํ๋ ค๋ ์์๊ฐ ์ด๋ค ์ปจํ ์ด๋์ ์์..
2020.08.09 -
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ vector
[ STL ์๋ฃ๊ตฌ์กฐ vector] STL vector๋ array์ ๋ฌ๋ฆฌ ๋์ ๋ฐฐ์ด์ด๋ค. ๋์ ์ด๋ ๋ฌด์จ ๋ป์ผ๊น? ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋ ๋ฌด์์ธ๊ฐ๊ฐ ๋ณํํ๋ค๋ ์๋ฏธ์ด๋ค. ๋ฐฐ์ด์์ ๋ณํ ์ ์๋ ๊ฒ์ ๋ฐฐ์ด์ ์์ ๊ฐ์์ด๋ค. vector๋ ์คํ ์ ์์์ ๊ฐ์๊ฐ ๋ณํ ์ ์๋ค. vector๋ ๋ฐ๋์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ฅผ ์ ์ฅํ๋ค. vector์ ์์๊ฐ ๊ฐ๋ ์ฐจ๋ฉด, ๋ฉ๋ชจ๋ฆฌ๋ new๋ก ์์ฒญํด์ ์๋ก ํ๋ณดํ๋ค. 1. ํ์ฌ ๋ด์ ์ ์๋ ์์์ ๊ฐ์(capacity) ๋ณด๋ค ๋ ํฐ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ฒญํ๋ค. 2. ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ฌ ์์๋ฅผ ๋ชจ๋ ๋ณต์ฌํ๋ค. 3. ๋ณต์ฌํ ์์๋ค์ ๋ค์ ์์น์ ์ ์์๋ฅผ ์ถ๊ฐ(push_back)ํ๋ค. 4. ์ด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐํ(delete)ํ๋ค. ์ฆ, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ก ํ ๋น๋ฐ๊ณ ๊ฑฐ..
2020.08.07