stl2 [C++] 18. Standard Library ์ ๋ณตํ๊ธฐ(STL) STL์ด๋? C++ STL(Standard Template Library)์ C++ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ค์ํ ๊ตฌ์ฑ ์์ ์ค ํ๋๋ก, ์ฌ๋ฌ ์ ์ฉํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณตํ๋ ์ปฌ๋ ์ ์ ๋๋ค. STL์ C++ ํ์ค์ด๋ฏ๋ก C++ ์ธ์ด์ ๋ด์ฅ๋์ด ์์ผ๋ฉฐ, ๋ง์ C++ ์ปดํ์ผ๋ฌ์ ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. STL์ ํต์ฌ ์์ด๋์ด๋ 'ํ ํ๋ฆฟ(Template)'์ ์ฌ์ฉํ์ฌ ์ ๋ค๋ฆญ(generic)ํ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ๊ตฌํ๋ STL ์ปจํ ์ด๋์ ์๊ณ ๋ฆฌ์ฆ์ ํน์ ์๋ฃํ์ ์ข ์๋์ง ์๊ณ , ๋ค์ํ ์๋ฃํ์ ๋ํด ์ฌ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ผ๋ฐ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. STL์ ์ฃผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ธ ๊ฐ์ง ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. 1. ์ปจํ ์ด๋ (Conta.. 2023. 8. 6. [STL][functional] std::bind, std::function # std::bind, std::function std::bind ํจ์ ํ ํ๋ฆฟ์ ํจ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ๋ ์์ ์ธ์ ๋ฆฌ์คํธ๋ก ๋ฐ์ธ๋ฉํ์ฌ ์๋ก์ด ํจ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ์ด๋ ๋ฏธ๋ฆฌ ์ง์ ํ ์ธ์ ๊ฐ์ด๋ ์ธ์ ์์น์ ๊ฐ์ ๊ณ ์ ์ํค๋ ๋ฐ ์ฌ์ฉ๋๋ค. std::bind๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ์๋ฅผ ์ผ๋ถ ๊ณ ์ ํ๊ฑฐ๋ ์์๋ฅผ ๋ณ๊ฒฝํ์ฌ ํจ์ ํธ์ถ ์ ์ ์ฐ์ฑ์ ๋์ผ ์ ์๋ค. std::function์ ํจ์ ํฌ์ธํฐ์ ๋น์ทํ ๊ฐ๋ ์ผ๋ก, ์คํ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๋ ํจ์ ๊ฐ์ฒด(wrapper)์ด๋ค. ๋ค์ํ ์ข ๋ฅ์ ํจ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๊ณ ํธ์ถํ ์ ์์ผ๋ฉฐ, ํนํ ๋ฐํ์ ์์ ๋ค๋ฅธ ํจ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ํ ๋นํ์ฌ ์ฌ์ฉํ ์ ์๋ค. std::bind์ std::function์ ์๋ก ๊ถํฉ์ด ์ ๋ง๋๋ค. ํนํ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์์ ๊ฐ์ ์ ๋ณด.. 2023. 6. 8. ์ด์ 1 ๋ค์