[C++] C++17 string_view
์ผ๋จ string_view๋ผ๋ ์ด ํ์ ์ ๋ญ ๋๋จํ ๊ธฐ๋ฅ์ ๊ฐ์ง ๊ฑด ์๋๊ณ ๋จ์ํ ํธ์์ฑ์ ์ํด์ ์ ๊ณต๋๋ ๊ธฐ๋ฅ์ด๋ค.
์ด ํ์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ฅผ ๋ด๋ณด์.
const string& str๋ฅผ ์ธ์๋ก ๋ฐ์์ ์ถ๋ ฅํ๋ ํจ์๋ฅผ ์ง๋ณธ๋ค ์น์.
์ถ๋ ฅ์ ์ ์์ ์ด๋ค. ์ฌ๊ธฐ์ ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น?
hello๋ const charํ ๋ฌธ์์ด์ด๋ค. ๊ทผ๋ฐ ํจ์์ ํ๋ผ๋ฏธํฐ๋ string์ฐธ์กฐํ์
์ด๋ค.
ํ์
์ ๋ง์ง๋ ์์ง๋ง string์ charํ์
์ ๋ฐ์์ ์์ฑ๋ ์ ์์ผ๋ฏ๋ก ์ด๋ป๊ฒ์ด๋ป๊ฒ ์๋์ ๋๋ค.
ํ์ง๋ง const string&์ด๋ผ๋ ์ฐธ์กฐ ๋ช
์๊ฐ ๋ฌด์ํ๊ฒ ์ธ๋ฐ์์ด string์ ์ํ ๊ณต๊ฐ์ ํ ๋น์ด ๋ฒ์ด์ง๋ค.
ํด๊ฒฐ๋ฒ์ ๋๋ฌด๋๋ ๊ฐ๋จํ๋ค.
์ค๋ฒ๋ก๋ฉ์ ํ๋ฉด ๋๋ค. ๊ทผ๋ฐ ์ด์ง๋ ํ๋๋ฒ์ด์ง ์ด๋ฌ๋ค์ ๋ฌ๋ค ํ ์๋ ์๊ณ ๋๋ฝ๊ฒ ๊ท์ฐฎ๋ค.
๊ทธ๋์ char*์ด๋ string์ด๋ ์ฝ๊ธฐ์ ์ฉ ์ฐธ์กฐ๋ก ๋ฐ์๋ฒ๋ฆด ์ ์๋ ํ์
์ ๋ง๋ค์๋๋ฐ, ์ด๊ฒ ๋ฐ๋ก string_view๋ค.
๊น๋ํ๋ค.
๊ทธ๋ฆฌ๊ณ string_view๋ ๋จ์ํ ๊ทธ๋ฅ ์ฐธ์กฐ๋ง ํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฆฌํค๋ ๋์์ด ์ฌ๋ผ์ง๋ฉด ํจ๊ป ์๋ฏธ๊ฐ ์์ด์ง๋ค.
๋ฑํ ํน๋ณํ ๊ฑด ์๋ค.
https://en.cppreference.com/w/cpp/string/basic_string_view
std::basic_string_view - cppreference.comstd:: basic_string_view Defined in header <string_view> template < class CharT, class Traits = std:: char_traits < CharT > > class basic_string_view ; (since C++17) The class template basic_string_view describes an object that can refer to a constant contiguous sequence of char -like objects with th...en.cppreference.com
