[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