STL(10)
-
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ array
[ STL ์๋ฃ๊ตฌ์กฐ array ] array๋ ๋ค๋ฅธ STL ์ปจํ ์ด๋์ ๊ฐ์ด ๋์ผํ ์๋ฃํ์ ๋ด์ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด STL์์ ์ ๊ณตํ๋ ๋ฐฐ์ด ์ปจํ ์ด๋์ด๋ค. ์ฐ๋ฆฌ๊ฐ ๋ง๋๋ ๋ฐฐ์ด๋ณด๋ค ์ข ๋ ๊ธฐ๋ฅ์ ์ผ๋ก ๋ง์ ๋๋ํ ๋ฐฐ์ด์ด๋ค. ์ฆ, POD ๋ฐฐ์ด์ ๊ธฐ๋ฅ์ ๊ทธ๋๋ก ํ๋ฉด์ ๋ค๋ฅธ ์ผ๋ ํ ์ ์๋๋ก ํด๋์ค๋ก ๋ง๋ ๋ฐฐ์ด์ด๋ค. ๊ทธ๋ฌ๋ฉด์๋ POD ๋ฐฐ์ด๊ณผ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ ๊ฐ๋ค. POD๋? Plain Old Data. ๋ฉ๋ชจ๋ฆฌ ์์์ ์ฐ์์ ์ธ ๋ฐ์ดํธ์ด์ ๋งํ๋ค. ๋ฐฐ์ด์ ๋จ์ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋์ผํ ์๋ฃํ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ์๋ ๊ณต๊ฐ์ ์ ์ฅํ๋ค. ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค์ ๋ก ๋ถ์ด์์ผ๋ฏ๋ก ์์ ๋ฒ์ง ์ฃผ์๋ง ๊ธฐ์ตํ๊ณ ์์ผ๋ฉด ๋ฐฐ์ด์ ๋ค๋ฅธ ์์๋ก ์ด๋ํ๋ ๊ฒ์ O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. ์ฆ, a[0]์ ์ต์ธ์คํ๋..
2020.08.06 -
๋ค์ ์ ๋ฆฌํ๋ C++ STL [ ๊ฐ์ ]
[ STL (Standard Template Library) ] STL(Standard Template Libray)์ด๋ ํ์ค ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ํ ํ๋ฆฟ(Template)์ ๋ฌด์์ผ๊น? ํ ํ๋ฆฟ(Template)์ C++์์ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ ๊ธฐ๋ฅ์ผ๋ก ์๋ฃํ์ ์ฝ๋งค์ด์ง ์๊ณ ๋์ํ ์ ์๋๋ก ๋ฒ์ฉ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํด ์ค๋ค. ์๋ฅผ ๋ค์ด์ Add๋ผ๋ ๋ง์ ํจ์๋ฅผ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํ์. ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ฉด ์๋ฃํ์ ์๊ด์์ด ํจ์๋ฅผ ์์ฑํ์ฌ ๋ฒ์ฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ์์ ํ ํ๋ฆฟ ํจ์ Add๋ ์ด๋ค ์๋ฃํ์ด๋๋ผ๋ ํจ์์ ์ ๋ฌ๋๋ ๋ ๊ฐ์ ์ธ์๊ฐ ๊ฐ์ ์๋ฃํ์ด๊ธฐ๋ง ํ๋ฉด ๋ ์๋ฃํ์ ๋ํ ์ ์๋ Addํจ์๋ฅผ ๋ง๋ค์ด๋ธ๋ค. ์ด๋ ๊ฒ ๋ฒ์ฉ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ ์ ๋ค๋ฆญ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ ํ๋ค. ์ฆ, ์๋ฃ..
2020.08.05 -
04. [C++] STL (Standard Template Library) - ์๊ณ ๋ฆฌ์ฆ(algorithm)
for_each ์๊ณ ๋ฆฌ์ฆ ํจ์. ํค๋์์ ์ ๊ณต. for_each(begin, end, function pointer or functor) ์ปจํ ์ด๋๋ฅผ ์ํํ๋ฉด์ ์ธ ๋ฒ์งธ ์ธ์๋ก ๋๊ฒจ๋ฐ์ ํจ์ ํฌ์ธํฐ๋ ํจ์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ณต ์ํ. ํจ์ ํฌ์ธํฐ๋ ํจ์ ๊ฐ์ฒด๋ '๋จํญ'์ด์ด์ผ ํ๋ค. ๋ฐฐ์ด์ ๋์์ผ๋ก๋ ์ ์ฉ ๊ฐ๋ฅ. count_if ์๊ณ ๋ฆฌ์ฆ ํจ์. ์ปจํ ์ด๋๋ฅผ ์ํํ๋ฉด์ '๋จํญ ์กฐ๊ฑด์'๋ฅผ ์คํํ๋ค. '๋จํญ ์กฐ๊ฑด์'๊ฐ ๋ฐํํ๋ true์ ๊ฐ์๋ฅผ ๊ณ์ฐํ๋ ์๊ณ ๋ฆฌ์ฆ ํจ์. ์ปจํ ์ด๋ ๋ฟ๋ง ์๋๋ผ ๋ฐฐ์ด์ ๋์์ผ๋ก๋ ํ ์ ์๋ค. find_if ์๊ณ ๋ฆฌ์ฆ ํจ์. '๋จํญ ์กฐ๊ฑด์'๊ฐ true๋ฅผ ๋ฐํํ ๊ฒฝ์ฐ์ ํด๋น๋๋ ๋ฐ๋ณต์๋ฅผ ๋ฐํํ๋ค.
2019.06.26 -
03. [C++] STL (Standard Template Library) - Map
Map ํ์ค ์ฐ๊ด ์ปจํ ์ด๋. (๋น ์ ํ์ ). ์๊ฐ ๊ท ํ ์ด์ง ํ์ํธ๋ฆฌ (๋ ๋ - ๋ธ๋ ํธ๋ฆฌ) ๊ธฐ๋ฐ์ด๋ค. ๋ ธ๋ ๊ธฐ๋ฐ. (๋น ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ.) ์์ ํ๋๊ฐ Key์ Value ํ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. (์ค๋ณต Key๋ ํ์ฉํ์ง ์๋๋ค.) ์ฝ์ , ์ญ์ ์ Key ๊ธฐ์ค์ผ๋ก ๋งค๋ฒ ์ ๋ ฌ์ด ์ผ์ด๋๋ค. (๋น๋ฒํ ์ฝ์ , ์ญ์ ๋ถ๋ฆฌ.) Key๊ฐ์ ํตํด์ [] ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ์ด์ง ํ์ ํธ๋ฆฌ ๊ธฐ๋ฐ์ด๋ค. (ํ์ ์ ๋ฆฌ.) [ Map์ ์ ์ธ ] map๋ก ์ ์ธ ํ๋ค. Key์ Value์๋ ๊ตฌ์กฐ์ฒด๋ ํด๋์ค๊ฐ ์ฌ ์ ๋ ์๋ค. [ Map์ ์์ ์ฝ์ ] (1) pair ๊ตฌ์กฐ์ฒด๋ฅผ ์ด์ฉํ Map ์์ ์ฝ์ . map์ ์์๋ฅผ ์ฝ์ ํ๊ธฐ ์ ์ pair๊ตฌ์กฐ์ฒด๋ฅผ ์์ฑํด์ผํ๋ค. ์ฆ, map์ ์์๋ pair๋ก ์ด๋ฃจ์ด์ก๋ค. first - K..
2019.06.25