æååã©ã¤ãã©ãª
C++ ã®æååã©ã¤ãã©ãªã«ã¯3種é¡ã®æååã«å¯¾ãããµãã¼ããå«ã¾ãã¦ãã¾ãã
- std::basic_string - ä»»æã®æååã®æååãæä½ããããã«è¨è¨ããããã³ãã¬ã¼ãã¯ã©ã¹
- std::basic_string_view (C++17) - æååã®ä¸é¨ã¸ã®è»½éãªæææ¨©ã®ãªãèªã¿è¾¼ã¿å°ç¨ã®ãã¥ã¼
- ãã«çµç«¯æåå - ç¹å¥ãªãã«æåã§çµç«¯ããæåé å
ç®æ¬¡ |
[ç·¨é] std::basic_string
ãã³ãã¬ã¼ãã¯ã©ã¹ std::basic_string ã¯æåã®ä¸¦ã³ãæä½ãããæ ¼ç´ãããããæ¹æ³ãä¸è¬åãã¾ãã æååã®ä½æãæä½ãç ´æ£ã¯ãã¹ã¦ã¯ã©ã¹ã¡ã½ãããé¢é£é¢æ°ã®ä¾¿å©ãªéåã§å¦çããã¾ãã
ä¸è¬çã«ä½¿ç¨ãããåã«å¯¾ã㦠std::basic_string ã®ç¹æ®åãããã¤ãæä¾ããã¾ãã
ããã
<string> ã§å®ç¾© | |
å | å®ç¾© |
std::string | std::basic_string<char> |
std::wstring | std::basic_string<wchar_t> |
std::u8string (C++20以ä¸) | std::basic_string<char8_t> |
std::u16string (C++11以ä¸) | std::basic_string<char16_t> |
std::u32string (C++11以ä¸) | std::basic_string<char32_t> |
std::basic_string_viewãã³ãã¬ã¼ãã¯ã©ã¹ std::basic_string_view 㯠std::basic_string ã®ã¤ã³ã¿ãã§ã¼ã¹ã«ä¼¼ãã¤ã³ã¿ãã§ã¼ã¹ã使ç¨ãã¦æååãæååã®ä¸é¨ã¸ã®èªã¿è¾¼ã¿å°ç¨ã¢ã¯ã»ã¹ãæä¾ãã軽éãªãªãã¸ã§ã¯ãã§ãã ä¸è¬çã«ä½¿ç¨ãããåã«å¯¾ã㦠std::basic_string_view ã®ç¹æ®åãããã¤ãæä¾ããã¾ãã
|
(C++17以ä¸) |
[ç·¨é] ãã«çµç«¯æåå
ãã«çµç«¯æååã¯ç¹å¥ãªãã«æåã§çµç«¯ããæåé åã§ãã C++ ã¯ãã«çµç«¯æååã使ã調æ»ã夿´ãã颿°ãæä¾ãã¾ãã
ãã«çµç«¯æååã¯3種é¡ããã¾ãã
- ãã«çµç«¯ãã¤ãæåå
- ãã«çµç«¯ãã«ããã¤ãæåå
- ãã«çµç«¯ã¯ã¤ãæåå
[ç·¨é] 追å ã®ãµãã¼ã
[ç·¨é] std::char_traits
æååã©ã¤ãã©ãªã¯ std::basic_string ããã³ std::basic_string_view (C++17以ä¸) ã«å¯¾ããåã¨é¢æ°ãå®ç¾©ããã¯ã©ã¹ãã³ãã¬ã¼ã std::char_traits ãæä¾ãã¾ãã 以ä¸ã®ç¹æ®åãå®ç¾©ããã¦ãã¾ãã
ããã <string> ã§å®ç¾©
|
||
template<> class char_traits<char>; |
||
template<> class char_traits<wchar_t>; |
||
template<> class char_traits<char8_t>; |
(C++20以ä¸) | |
template<> class char_traits<char16_t>; |
(C++11以ä¸) | |
template<> class char_traits<char32_t>; |
(C++11以ä¸) | |
[ç·¨é] 夿ã¨åé¡
ãã¼ã«ã©ã¤ã¼ã¼ã·ã§ã³ã©ã¤ãã©ãªã¯æåå夿ã«å¯¾ãããµãã¼ã (std::wstring_convert ãªã©) ãæåãåé¡ãã颿° (std::isspace ã std::isdigit ãªã©) ãæä¾ãã¾ãã
[ç·¨é] é¢é£é ç®
ãã¼ã«ã©ã¤ã¼ã¼ã·ã§ã³ã©ã¤ãã©ãª ã® C++ãªãã¡ã¬ã³ã¹
| |
æååã©ã¤ãã©ãª ã® Cè¨èªãªãã¡ã¬ã³ã¹
|