{"id":1623,"date":"2025-03-24T08:50:14","date_gmt":"2025-03-23T23:50:14","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=1623"},"modified":"2025-03-24T08:50:14","modified_gmt":"2025-03-23T23:50:14","slug":"%e3%80%90%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89%e3%80%91stdstring%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%e3%81%a8%e5%ae%9f%e8%b7%b5%e3%83%86%e3%82%af%e3%83%8b%e3%83%83%e3%82%af-2024%e5%b9%b4","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=1623","title":{"rendered":"\u3010\u5b8c\u5168\u30ac\u30a4\u30c9\u3011std::string\u306e\u4f7f\u3044\u65b9\u3068\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af 2024\u5e74\u7248"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">std::string \u3068\u306f\uff1f\u521d\u5fc3\u8005\u3067\u3082\u308f\u304b\u308b\u57fa\u790e\u77e5\u8b58<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">C\u8a00\u8a9e\u306echar\u914d\u5217\u3068\u306e\u9055\u3044\u3068\u30e1\u30ea\u30c3\u30c8<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-2\">std::string\u304c\u63d0\u4f9b\u3059\u308b\u4e3b\u8981\u306a\u6a5f\u80fd\u3068\u7279\u5fb4<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-3\">std::string\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u30de\u30b9\u30bf\u30fc\u30ac\u30a4\u30c9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-4\">\u6587\u5b57\u5217\u306e\u751f\u6210\u3068\u521d\u671f\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>      <li>        <a href=\"#i-5\">\u6587\u5b57\u5217\u306e\u7d50\u5408\u3068\u90e8\u5206\u6587\u5b57\u5217\u306e\u53d6\u308a\u51fa\u3057\u65b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-6\">\u6587\u5b57\u5217\u306e\u691c\u7d22\u3068\u524a\u9664\u306e\u52b9\u7387\u7684\u306a\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-7\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8003\u616e\u3057\u305fstd::string\u306e\u6d3b\u7528\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-8\">\u30e1\u30e2\u30ea\u7ba1\u7406\u3068\u30ad\u30e3\u30d1\u30b7\u30c6\u30a3\u306e\u6700\u9069\u5316<\/a>      <\/li>      <li>        <a href=\"#i-9\">\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u751f\u6210\u3092\u6291\u5236\u3059\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-10\">SSO\uff08Small String Optimization\uff09\u306e\u6d3b\u7528\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-11\">\u3088\u304f\u3042\u308bstd::string\u306e\u30c8\u30e9\u30d6\u30eb\u3068\u89e3\u6c7a\u7b56<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-12\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>      <li>        <a href=\"#i-13\">\u6587\u5b57\u30b3\u30fc\u30c9\u95a2\u9023\u306e\u554f\u984c\u3078\u306e\u5bfe\u51e6\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-14\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u306e\u7279\u5b9a\u3068\u6539\u5584<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-15\">\u30e2\u30c0\u30f3C++\u306b\u304a\u3051\u308bstd::string\u306e\u65b0\u6a5f\u80fd\u3068\u6d3b\u7528\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-16\">C++17\u3067\u8ffd\u52a0\u3055\u308c\u305f\u6587\u5b57\u5217\u64cd\u4f5c\u6a5f\u80fd<\/a>      <\/li>      <li>        <a href=\"#i-17\">C++20\u3067\u306e\u6587\u5b57\u5217\u51e6\u7406\u306e\u6539\u5584\u70b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-18\">\u5c06\u6765\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u4e88\u5b9a\u3055\u308c\u3066\u3044\u308b\u6a5f\u80fd\u3068\u5bfe\u5fdc\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">std::string \u3068\u306f\uff1f\u521d\u5fc3\u8005\u3067\u3082\u308f\u304b\u308b\u57fa\u790e\u77e5\u8b58<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">C\u8a00\u8a9e\u306echar\u914d\u5217\u3068\u306e\u9055\u3044\u3068\u30e1\u30ea\u30c3\u30c8<\/h3>\n\n\n\n<p>std::string\u306f\u3001C++\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u63d0\u4f9b\u3059\u308b\u6587\u5b57\u5217\u30af\u30e9\u30b9\u3067\u3059\u3002C\u8a00\u8a9e\u306echar\u914d\u5217\u306b\u3088\u308b\u6587\u5b57\u5217\u51e6\u7406\u3068\u6bd4\u8f03\u3057\u3066\u3001\u3088\u308a\u5b89\u5168\u3067\u4f7f\u3044\u3084\u3059\u3044\u6587\u5b57\u5217\u64cd\u4f5c\u3092\u5b9f\u73fe\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u8868\u3067\u3001\u4e3b\u306a\u9055\u3044\u3068\u30e1\u30ea\u30c3\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u307f\u307e\u3057\u3087\u3046\uff1a<\/p>\n\n\n<div id=\"id-16604cef-5e5f-4178-8fc3-2dda6e61ea13\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u7279\u5fb4<\/th><th>std::string<\/th><th>char\u914d\u5217<\/th><\/tr><\/thead><tbody><tr><td>\u30e1\u30e2\u30ea\u7ba1\u7406<\/td><td>\u81ea\u52d5\u7684\u306b\u7ba1\u7406\u3055\u308c\u308b<\/td><td>\u624b\u52d5\u3067\u7ba1\u7406\u304c\u5fc5\u8981<\/td><\/tr><tr><td>\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc<\/td><td>\u81ea\u52d5\u7684\u306b\u9632\u6b62\u3055\u308c\u308b<\/td><td>\u30d7\u30ed\u30b0\u30e9\u30de\u304c\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<\/td><\/tr><tr><td>\u30b5\u30a4\u30ba\u5909\u66f4<\/td><td>\u52d5\u7684\u306b\u53ef\u80fd<\/td><td>\u56fa\u5b9a\u30b5\u30a4\u30ba<\/td><\/tr><tr><td>\u6587\u5b57\u5217\u64cd\u4f5c<\/td><td>\u8c4a\u5bcc\u306a\u7d44\u307f\u8fbc\u307f\u95a2\u6570<\/td><td>\u57fa\u672c\u7684\u306a\u95a2\u6570\u306e\u307f<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea\u30ea\u30fc\u30af<\/td><td>\u767a\u751f\u3057\u306b\u304f\u3044<\/td><td>\u6ce8\u610f\u304c\u5fc5\u8981<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u5177\u4f53\u4f8b\u3067\u898b\u3066\u307f\u307e\u3057\u3087\u3046\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ C\u8a00\u8a9e\u3067\u306e\u6587\u5b57\u5217\u51e6\u7406\nchar str1[10] = \"Hello\";\nchar str2[10] = \"World\";\nchar result[20];  \/\/ \u5341\u5206\u306a\u30b5\u30a4\u30ba\u3092\u78ba\u4fdd\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\nstrcpy(result, str1);\nstrcat(result, str2);  \/\/ \u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u306e\u5371\u967a\u6027\u3042\u308a\n\n\/\/ std::string\u3067\u306e\u6587\u5b57\u5217\u51e6\u7406\nstd::string str1 = \"Hello\";\nstd::string str2 = \"World\";\nstd::string result = str1 + str2;  \/\/ \u5b89\u5168\u3067\u7c21\u5358\u306a\u9023\u7d50<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">std::string\u304c\u63d0\u4f9b\u3059\u308b\u4e3b\u8981\u306a\u6a5f\u80fd\u3068\u7279\u5fb4<\/h3>\n\n\n\n<p>std::string\u30af\u30e9\u30b9\u306b\u306f\u3001\u6587\u5b57\u5217\u64cd\u4f5c\u306b\u5fc5\u8981\u306a\u69d8\u3005\u306a\u6a5f\u80fd\u304c\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u4e3b\u306a\u6a5f\u80fd\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6587\u5b57\u5217\u306e\u751f\u6210\u3068\u4ee3\u5165<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u69d8\u3005\u306a\u521d\u671f\u5316\u65b9\u6cd5\nstd::string s1;              \/\/ \u7a7a\u6587\u5b57\u5217\nstd::string s2 = \"Hello\";    \/\/ \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u3067\u521d\u671f\u5316\nstd::string s3(5, 'a');      \/\/ \"aaaaa\" - \u540c\u3058\u6587\u5b57\u306e\u7e70\u308a\u8fd4\u3057\nstd::string s4 = s2;         \/\/ \u30b3\u30d4\u30fc\u521d\u671f\u5316<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u6587\u5b57\u5217\u306e\u64cd\u4f5c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">std::string str = \"Hello\";\nstr += \" World\";           \/\/ \u6587\u5b57\u5217\u306e\u8ffd\u52a0\nstr.append(\"!\");          \/\/ \u5225\u306e\u8ffd\u52a0\u65b9\u6cd5\nsize_t len = str.length(); \/\/ \u9577\u3055\u306e\u53d6\u5f97<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u90e8\u5206\u6587\u5b57\u5217\u306e\u53d6\u5f97\u3068\u691c\u7d22<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">std::string str = \"Hello World\";\nstd::string sub = str.substr(0, 5);  \/\/ \"Hello\" \u3092\u53d6\u5f97\nsize_t pos = str.find(\"World\");      \/\/ \u4f4d\u7f6e\u306e\u691c\u7d22<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u6587\u5b57\u30a2\u30af\u30bb\u30b9\u3068\u4fee\u6b63<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">std::string str = \"Hello\";\nchar first = str[0];        \/\/ \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\nstr[0] = 'h';              \/\/ \u6587\u5b57\u306e\u5909\u66f4\nchar&amp; ref = str.at(1);     \/\/ \u5883\u754c\u30c1\u30a7\u30c3\u30af\u4ed8\u304d\u30a2\u30af\u30bb\u30b9<\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>\u5bb9\u91cf\u7ba1\u7406<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">std::string str;\nstr.reserve(100);          \/\/ \u30e1\u30e2\u30ea\u306e\u4e8b\u524d\u78ba\u4fdd\nsize_t cap = str.capacity(); \/\/ \u73fe\u5728\u306e\u5bb9\u91cf\u3092\u78ba\u8a8d<\/pre>\n\n\n\n<p>std::string\u306e\u91cd\u8981\u306a\u7279\u5fb4\u3068\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u70b9\u3082\u899a\u3048\u3066\u304a\u304d\u307e\u3057\u3087\u3046\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>NULL\u7d42\u7aef\u306e\u81ea\u52d5\u7ba1\u7406<\/strong>:<br>C\u8a00\u8a9e\u306e\u3088\u3046\u306a\\0\u306b\u3088\u308b\u7d42\u7aef\u7ba1\u7406\u3092\u610f\u8b58\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u305b\u3093\u3002<\/li>\n\n\n\n<li><strong>\u4f8b\u5916\u5b89\u5168\u6027<\/strong>:<br>\u30e1\u30e2\u30ea\u4e0d\u8db3\u306a\u3069\u306e\u7570\u5e38\u6642\u306b\u4f8b\u5916\u3092\u30b9\u30ed\u30fc\u3057\u3001\u5b89\u5168\u306b\u51e6\u7406\u3092\u4e2d\u65ad\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>STL\u30b3\u30f3\u30c6\u30ca\u3068\u306e\u7d71\u5408<\/strong>:<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">std::vector&lt;std::string&gt; words = {\"Hello\", \"World\"};\nstd::sort(words.begin(), words.end());  \/\/ \u6587\u5b57\u5217\u306e\u914d\u5217\u3092\u7c21\u5358\u306b\u30bd\u30fc\u30c8<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30a4\u30c6\u30ec\u30fc\u30bf\u30b5\u30dd\u30fc\u30c8<\/strong>:<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">std::string str = \"Hello\";\nfor (char c : str) {  \/\/ \u7bc4\u56f2\u30d9\u30fc\u30b9\u306efor\u30eb\u30fc\u30d7\u304c\u4f7f\u3048\u308b\n    std::cout &lt;&lt; c &lt;&lt; ' ';\n}<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u6a5f\u80fd\u306b\u3088\u308a\u3001std::string\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u5b89\u5168\u3067\u52b9\u7387\u7684\u306a\u6587\u5b57\u5217\u51e6\u7406\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u6a5f\u80fd\u3092\u3088\u308a\u5b9f\u8df5\u7684\u306b\u6d3b\u7528\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-3\">std::string\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u30de\u30b9\u30bf\u30fc\u30ac\u30a4\u30c9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">\u6587\u5b57\u5217\u306e\u751f\u6210\u3068\u521d\u671f\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<p>std::string\u306e\u521d\u671f\u5316\u306b\u306f\u69d8\u3005\u306a\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\u3002\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u6700\u9069\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u57fa\u672c\u7684\u306a\u521d\u671f\u5316\u65b9\u6cd5<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ 1. \u30c7\u30d5\u30a9\u30eb\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\nstd::string str1;  \/\/ \u7a7a\u6587\u5b57\u5217\n\n\/\/ 2. \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u306b\u3088\u308b\u521d\u671f\u5316\nstd::string str2 = \"Hello\";  \/\/ \u30b3\u30d4\u30fc\u521d\u671f\u5316\nstd::string str3(\"World\");   \/\/ \u76f4\u63a5\u521d\u671f\u5316\n\n\/\/ 3. \u4ed6\u306estd::string\u304b\u3089\u306e\u521d\u671f\u5316\nstd::string str4(str2);      \/\/ \u30b3\u30d4\u30fc\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\nstd::string str5 = str2;     \/\/ \u30b3\u30d4\u30fc\u521d\u671f\u5316\n\n\/\/ 4. \u90e8\u5206\u6587\u5b57\u5217\u306b\u3088\u308b\u521d\u671f\u5316\nstd::string str6(\"Hello World\", 5);  \/\/ \"Hello\"\u306e\u307f\u3092\u53d6\u5f97\nstd::string str7 = std::string(\"Hello World\").substr(6);  \/\/ \"World\"\u3092\u53d6\u5f97<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u52b9\u7387\u3092\u8003\u616e\u3057\u305f\u521d\u671f\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u4e8b\u524d\u306b\u30e1\u30e2\u30ea\u3092\u78ba\u4fdd\nstd::string str;\nstr.reserve(100);  \/\/ 100\u6587\u5b57\u5206\u306e\u30e1\u30e2\u30ea\u3092\u78ba\u4fdd\n\n\/\/ \u6587\u5b57\u306e\u7e70\u308a\u8fd4\u3057\u306b\u3088\u308b\u521d\u671f\u5316\nstd::string padding(10, '-');  \/\/ \"----------\"\n\n\/\/ move\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u3092\u4f7f\u7528\u3057\u305f\u52b9\u7387\u7684\u306a\u521d\u671f\u5316\nstd::string source = \"Hello World\";\nstd::string dest = std::move(source);  \/\/ source\u306e\u5185\u5bb9\u3092\u79fb\u52d5<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">\u6587\u5b57\u5217\u306e\u7d50\u5408\u3068\u90e8\u5206\u6587\u5b57\u5217\u306e\u53d6\u308a\u51fa\u3057\u65b9<\/h3>\n\n\n\n<p>\u6587\u5b57\u5217\u306e\u7d50\u5408\u3084\u90e8\u5206\u6587\u5b57\u5217\u306e\u62bd\u51fa\u306f\u3001\u6700\u3082\u983b\u7e41\u306b\u884c\u308f\u308c\u308b\u64cd\u4f5c\u306e\u4e00\u3064\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u52b9\u7387\u7684\u306a\u6587\u5b57\u5217\u7d50\u5408<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ 1. \u6f14\u7b97\u5b50\u306b\u3088\u308b\u7d50\u5408\nstd::string str1 = \"Hello\";\nstd::string str2 = \" World\";\nstd::string result = str1 + str2;  \/\/ \u57fa\u672c\u7684\u306a\u7d50\u5408\n\n\/\/ 2. append\u95a2\u6570\u306e\u4f7f\u7528\nstd::string str3 = \"Hello\";\nstr3.append(\" World\");  \/\/ \u672b\u5c3e\u306b\u8ffd\u52a0\n\n\/\/ 3. \u8907\u6570\u306e\u6587\u5b57\u5217\u3092\u52b9\u7387\u7684\u306b\u7d50\u5408\nstd::string message;\nmessage.reserve(100);  \/\/ \u4e8b\u524d\u306b\u30e1\u30e2\u30ea\u78ba\u4fdd\nmessage += \"First\";\nmessage += \" Second\";\nmessage += \" Third\";\n\n\/\/ 4. \u6587\u5b57\u5217\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u4f7f\u7528\u3057\u305f\u7d50\u5408\n#include &lt;sstream&gt;\nstd::ostringstream oss;\noss &lt;&lt; \"Value1: \" &lt;&lt; 42 &lt;&lt; \" Value2: \" &lt;&lt; 3.14;\nstd::string result = oss.str();<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u90e8\u5206\u6587\u5b57\u5217\u306e\u53d6\u308a\u51fa\u3057<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">std::string text = \"Hello World! How are you?\";\n\n\/\/ 1. substr\u95a2\u6570\u306e\u4f7f\u7528\nstd::string part1 = text.substr(0, 5);     \/\/ \"Hello\"\nstd::string part2 = text.substr(6, 5);     \/\/ \"World\"\nstd::string rest = text.substr(13);        \/\/ \"How are you?\"\n\n\/\/ 2. \u6587\u5b57\u5217\u306e\u4e00\u90e8\u3092\u7f6e\u304d\u63db\u3048\ntext.replace(0, 5, \"Hi\");                  \/\/ \"Hi World! How are you?\"\n\n\/\/ 3. \u90e8\u5206\u6587\u5b57\u5217\u306e\u53c2\u7167\nstd::string_view sv = std::string_view(text).substr(0, 5);  \/\/ \u30e1\u30e2\u30ea\u52b9\u7387\u7684<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-6\">\u6587\u5b57\u5217\u306e\u691c\u7d22\u3068\u524a\u9664\u306e\u52b9\u7387\u7684\u306a\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u6587\u5b57\u5217\u306e\u691c\u7d22\u3068\u524a\u9664\u306f\u3001\u9069\u5207\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3067\u52b9\u7387\u3092\u5927\u304d\u304f\u6539\u5584\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u691c\u7d22\u64cd\u4f5c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">std::string text = \"The quick brown fox jumps over the lazy dog\";\n\n\/\/ 1. \u57fa\u672c\u7684\u306a\u691c\u7d22\nsize_t pos1 = text.find(\"fox\");           \/\/ \u524d\u65b9\u304b\u3089\u691c\u7d22\nsize_t pos2 = text.rfind(\"the\");          \/\/ \u5f8c\u65b9\u304b\u3089\u691c\u7d22\n\n\/\/ 2. \u8907\u6570\u306e\u51fa\u73fe\u4f4d\u7f6e\u3092\u691c\u7d22\nsize_t pos = 0;\nwhile ((pos = text.find(\"the\", pos)) != std::string::npos) {\n    std::cout &lt;&lt; \"Found at: \" &lt;&lt; pos &lt;&lt; std::endl;\n    pos += 1;  \/\/ \u6b21\u306e\u691c\u7d22\u4f4d\u7f6e\u3078\n}\n\n\/\/ 3. \u6587\u5b57\u30bb\u30c3\u30c8\u306b\u3088\u308b\u691c\u7d22\nsize_t vowel_pos = text.find_first_of(\"aeiou\");  \/\/ \u6700\u521d\u306e\u6bcd\u97f3\nsize_t non_space = text.find_first_not_of(\" \");  \/\/ \u6700\u521d\u306e\u975e\u7a7a\u767d\u6587\u5b57<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u52b9\u7387\u7684\u306a\u524a\u9664\u64cd\u4f5c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">std::string text = \"Hello  World!  Extra  spaces  here.\";\n\n\/\/ 1. \u7279\u5b9a\u306e\u4f4d\u7f6e\u306e\u6587\u5b57\u3092\u524a\u9664\ntext.erase(5, 1);  \/\/ 1\u6587\u5b57\u524a\u9664\n\n\/\/ 2. \u7bc4\u56f2\u3092\u6307\u5b9a\u3057\u3066\u524a\u9664\ntext.erase(text.begin() + 5, text.begin() + 7);  \/\/ \u7bc4\u56f2\u524a\u9664\n\n\/\/ 3. \u7279\u5b9a\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u524a\u9664\uff08\u9023\u7d9a\u3059\u308b\u7a7a\u767d\u30921\u3064\u306b\uff09\nstd::string::iterator new_end = std::unique(\n    text.begin(), text.end(),\n    [](char a, char b) { return a == ' ' &amp;&amp; b == ' '; }\n);\ntext.erase(new_end, text.end());\n\n\/\/ 4. \u5148\u982d\u30fb\u672b\u5c3e\u306e\u7a7a\u767d\u3092\u524a\u9664\nvoid trim(std::string &amp;str) {\n    \/\/ \u5148\u982d\u306e\u7a7a\u767d\u3092\u524a\u9664\n    str.erase(0, str.find_first_not_of(\" \\t\\n\\r\"));\n    \/\/ \u672b\u5c3e\u306e\u7a7a\u767d\u3092\u524a\u9664\n    str.erase(str.find_last_not_of(\" \\t\\n\\r\") + 1);\n}<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u57fa\u672c\u64cd\u4f5c\u3092\u9069\u5207\u306b\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u6587\u5b57\u5217\u51e6\u7406\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u64cd\u4f5c\u3092\u3088\u308a\u52b9\u7387\u7684\u306b\u884c\u3046\u305f\u3081\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af\u306b\u3064\u3044\u3066\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-7\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8003\u616e\u3057\u305fstd::string\u306e\u6d3b\u7528\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">\u30e1\u30e2\u30ea\u7ba1\u7406\u3068\u30ad\u30e3\u30d1\u30b7\u30c6\u30a3\u306e\u6700\u9069\u5316<\/h3>\n\n\n\n<p>std::string\u306e\u30e1\u30e2\u30ea\u7ba1\u7406\u3092\u6700\u9069\u5316\u3059\u308b\u3053\u3068\u3067\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5927\u304d\u304f\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u52b9\u7387\u7684\u306a\u30e1\u30e2\u30ea\u78ba\u4fdd<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30e1\u30e2\u30ea\u518d\u78ba\u4fdd\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u308b\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\nvoid efficient_string_handling() {\n    \/\/ \u60aa\u3044\u4f8b\uff1a\u983b\u7e41\u306a\u30e1\u30e2\u30ea\u518d\u78ba\u4fdd\u304c\u767a\u751f\n    std::string bad;\n    for (int i = 0; i &lt; 1000; ++i) {\n        bad += std::to_string(i);  \/\/ \u6bce\u56de\u518d\u78ba\u4fdd\u304c\u5fc5\u8981\n    }\n\n    \/\/ \u826f\u3044\u4f8b\uff1a\u4e8b\u524d\u306b\u30e1\u30e2\u30ea\u3092\u78ba\u4fdd\n    std::string good;\n    good.reserve(4000);  \/\/ \u5341\u5206\u306a\u30b5\u30a4\u30ba\u3092\u4e8b\u524d\u78ba\u4fdd\n    for (int i = 0; i &lt; 1000; ++i) {\n        good += std::to_string(i);  \/\/ \u518d\u78ba\u4fdd\u304c\u4e0d\u8981\n    }\n}\n\n\/\/ \u30ad\u30e3\u30d1\u30b7\u30c6\u30a3\u306e\u76e3\u8996\nvoid monitor_capacity() {\n    std::string str;\n    std::cout &lt;&lt; \"Initial capacity: \" &lt;&lt; str.capacity() &lt;&lt; std::endl;\n\n    str.reserve(100);\n    std::cout &lt;&lt; \"After reserve: \" &lt;&lt; str.capacity() &lt;&lt; std::endl;\n\n    str.shrink_to_fit();  \/\/ \u672a\u4f7f\u7528\u30e1\u30e2\u30ea\u3092\u89e3\u653e\n    std::cout &lt;&lt; \"After shrink: \" &lt;&lt; str.capacity() &lt;&lt; std::endl;\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u6587\u5b57\u5217\u30b5\u30a4\u30ba\u306e\u6700\u9069\u5316\nvoid optimize_string_size() {\n    \/\/ \u4e0d\u8981\u306a\u30e1\u30e2\u30ea\u3092\u4fdd\u6301\u3057\u3066\u3044\u308b\u72b6\u614b\n    std::string str = \"Hello\";\n    str.reserve(1000);  \/\/ \u5927\u304d\u306a\u30e1\u30e2\u30ea\u3092\u78ba\u4fdd\n\n    \/\/ \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6700\u9069\u5316\n    str.shrink_to_fit();  \/\/ \u4e0d\u8981\u306a\u30e1\u30e2\u30ea\u3092\u89e3\u653e\n\n    \/\/ \u4e00\u6642\u7684\u306a\u5927\u304d\u306a\u30d0\u30c3\u30d5\u30a1\u304c\u5fc5\u8981\u306a\u5834\u5408\n    {\n        std::string temp;\n        temp.reserve(1000);\n        \/\/ \u5927\u304d\u306a\u51e6\u7406\u3092\u5b9f\u884c\n    }  \/\/ \u30b9\u30b3\u30fc\u30d7\u3092\u629c\u3051\u308b\u3068\u81ea\u52d5\u7684\u306b\u30e1\u30e2\u30ea\u89e3\u653e\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u751f\u6210\u3092\u6291\u5236\u3059\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<p>\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u751f\u6210\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u308b\u3053\u3068\u3067\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u53c2\u7167\u3068\u30e0\u30fc\u30d6\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u306e\u6d3b\u7528<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u52b9\u7387\u7684\u306a\u6587\u5b57\u5217\u6e21\u3057\nclass StringHandler {\npublic:\n    \/\/ \u60aa\u3044\u4f8b\uff1a\u4e0d\u8981\u306a\u30b3\u30d4\u30fc\u304c\u767a\u751f\n    void badHandle(std::string str) {\n        \/\/ str\u306f\u547c\u3073\u51fa\u3057\u6642\u306b\u30b3\u30d4\u30fc\u3055\u308c\u308b\n    }\n\n    \/\/ \u826f\u3044\u4f8b1\uff1aconst\u53c2\u7167\u3092\u4f7f\u7528\n    void goodHandle(const std::string&amp; str) {\n        \/\/ \u30b3\u30d4\u30fc\u306f\u767a\u751f\u3057\u306a\u3044\n    }\n\n    \/\/ \u826f\u3044\u4f8b2\uff1a\u30e0\u30fc\u30d6\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u3092\u4f7f\u7528\n    void moveHandle(std::string&amp;&amp; str) {\n        stored_string_ = std::move(str);  \/\/ \u52b9\u7387\u7684\u306a\u79fb\u52d5\n    }\n\nprivate:\n    std::string stored_string_;\n};<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u6587\u5b57\u5217\u7d50\u5408\u306e\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u52b9\u7387\u7684\u306a\u6587\u5b57\u5217\u7d50\u5408\nstd::string optimize_concatenation() {\n    \/\/ \u60aa\u3044\u4f8b\uff1a\u591a\u6570\u306e\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u751f\u6210\u3055\u308c\u308b\n    std::string bad = \"Hello\" + std::string(\" \") + \"World\" + \"!\";\n\n    \/\/ \u826f\u3044\u4f8b\uff1aStringStream\u3092\u4f7f\u7528\n    std::ostringstream good;\n    good &lt;&lt; \"Hello\" &lt;&lt; \" \" &lt;&lt; \"World\" &lt;&lt; \"!\";\n    return good.str();\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-10\">SSO\uff08Small String Optimization\uff09\u306e\u6d3b\u7528\u65b9\u6cd5<\/h3>\n\n\n\n<p>SSO\u306f\u3001\u5c0f\u3055\u306a\u6587\u5b57\u5217\u3092\u30d2\u30fc\u30d7\u9818\u57df\u3067\u306f\u306a\u304f\u30b9\u30bf\u30c3\u30af\u4e0a\u306b\u4fdd\u6301\u3059\u308b\u6700\u9069\u5316\u6280\u8853\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>SSO\u306e\u4ed5\u7d44\u307f\u3068\u5229\u70b9<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ SSO\u306e\u30c7\u30e2\u30f3\u30b9\u30c8\u30ec\u30fc\u30b7\u30e7\u30f3\nvoid demonstrate_sso() {\n    \/\/ \u5c0f\u3055\u306a\u6587\u5b57\u5217\uff08\u901a\u5e3815\u6587\u5b57\u4ee5\u4e0b\uff09\u306f\u30b9\u30bf\u30c3\u30af\u306b\u4fdd\u6301\u3055\u308c\u308b\n    std::string small = \"Hello\";\n    std::cout &lt;&lt; \"Small string capacity: \" &lt;&lt; small.capacity() &lt;&lt; std::endl;\n\n    \/\/ \u5927\u304d\u306a\u6587\u5b57\u5217\u306f\u30d2\u30fc\u30d7\u306b\u4fdd\u6301\u3055\u308c\u308b\n    std::string large(100, 'x');\n    std::cout &lt;&lt; \"Large string capacity: \" &lt;&lt; large.capacity() &lt;&lt; std::endl;\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>SSO\u3092\u8003\u616e\u3057\u305f\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ SSO\u3092\u6700\u5927\u9650\u6d3b\u7528\u3059\u308b\u4f8b\nclass OptimizedString {\npublic:\n    \/\/ \u5c0f\u3055\u306a\u6587\u5b57\u5217\u7528\u306e\u6700\u9069\u5316\n    void setShortMessage(const char* msg) {\n        message_ = msg;  \/\/ SSO\u304c\u81ea\u52d5\u7684\u306b\u9069\u7528\u3055\u308c\u308b\n    }\n\n    \/\/ \u5927\u304d\u306a\u6587\u5b57\u5217\u7528\u306e\u6700\u9069\u5316\n    void setLongMessage(const char* msg, size_t len) {\n        message_.reserve(len);  \/\/ \u5fc5\u8981\u306a\u30b5\u30a4\u30ba\u3092\u4e8b\u524d\u78ba\u4fdd\n        message_ = msg;\n    }\n\nprivate:\n    std::string message_;\n};<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8a08\u6e2c\u4f8b<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;chrono&gt;\n\n\/\/ \u6587\u5b57\u5217\u64cd\u4f5c\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8a08\u6e2c\nvoid measure_string_performance() {\n    const int iterations = 100000;\n\n    auto start = std::chrono::high_resolution_clock::now();\n\n    \/\/ SSO\u7bc4\u56f2\u5185\u306e\u6587\u5b57\u5217\u64cd\u4f5c\n    std::string small;\n    for (int i = 0; i &lt; iterations; ++i) {\n        small = \"Short\";\n    }\n\n    auto mid = std::chrono::high_resolution_clock::now();\n\n    \/\/ SSO\u7bc4\u56f2\u5916\u306e\u6587\u5b57\u5217\u64cd\u4f5c\n    std::string large;\n    for (int i = 0; i &lt; iterations; ++i) {\n        large = std::string(100, 'x');\n    }\n\n    auto end = std::chrono::high_resolution_clock::now();\n\n    auto small_duration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(mid - start);\n    auto large_duration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(end - mid);\n\n    std::cout &lt;&lt; \"Small string operations: \" &lt;&lt; small_duration.count() &lt;&lt; \"\u03bcs\\n\";\n    std::cout &lt;&lt; \"Large string operations: \" &lt;&lt; large_duration.count() &lt;&lt; \"\u03bcs\\n\";\n}<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af\u3092\u9069\u5207\u306b\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001std::string\u3092\u4f7f\u7528\u3057\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b9f\u969b\u306e\u958b\u767a\u3067\u906d\u9047\u3057\u3084\u3059\u3044\u30c8\u30e9\u30d6\u30eb\u3068\u305d\u306e\u89e3\u6c7a\u7b56\u306b\u3064\u3044\u3066\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-11\">\u3088\u304f\u3042\u308bstd::string\u306e\u30c8\u30e9\u30d6\u30eb\u3068\u89e3\u6c7a\u7b56<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<p>std::string\u3092\u4f7f\u7528\u3059\u308b\u969b\u306e\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306f\u3001\u4e3b\u306b\u4e0d\u9069\u5207\u306a\u4f7f\u7528\u65b9\u6cd5\u3084\u4f8b\u5916\u51e6\u7406\u306e\u4e0d\u5099\u304b\u3089\u767a\u751f\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306b\u4e3b\u306a\u554f\u984c\u3068\u5bfe\u7b56\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6587\u5b57\u5217\u30d0\u30c3\u30d5\u30a1\u306e\u7ba1\u7406\u30df\u30b9<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u554f\u984c\u306e\u3042\u308b\u30b3\u30fc\u30c9\nchar* createBuffer() {\n    std::string str = \"Hello World\";\n    return str.data();  \/\/ \u5371\u967a\uff1astr\u306e\u30e9\u30a4\u30d5\u30bf\u30a4\u30e0\u304c\u7d42\u308f\u308b\u3068\u7121\u52b9\u306b\u306a\u308b\n}\n\n\/\/ \u6b63\u3057\u3044\u5b9f\u88c5\nstd::string createSafeBuffer() {\n    std::string str = \"Hello World\";\n    return str;  \/\/ std::string\u306e\u30e9\u30a4\u30d5\u30bf\u30a4\u30e0\u304c\u9069\u5207\u306b\u7ba1\u7406\u3055\u308c\u308b\n}\n\n\/\/ C\u5f62\u5f0f\u306e\u6587\u5b57\u5217\u304c\u5fc5\u8981\u306a\u5834\u5408\u306e\u5b89\u5168\u306a\u5b9f\u88c5\nclass StringHandler {\n    std::string stored_str_;\npublic:\n    void setString(const std::string&amp; str) {\n        stored_str_ = str;\n    }\n\n    const char* getBuffer() const {\n        return stored_str_.c_str();  \/\/ \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u751f\u5b58\u3057\u3066\u3044\u308b\u9593\u306f\u6709\u52b9\n    }\n};<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u4f8b\u5916\u5b89\u5168\u6027\u306e\u78ba\u4fdd<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u4f8b\u5916\u5b89\u5168\u3067\u306a\u3044\u5b9f\u88c5\nvoid unsafeFunction() {\n    std::string* str_ptr = new std::string(\"Hello\");\n    \/\/ \u51e6\u7406\u4e2d\u306b\u4f8b\u5916\u304c\u767a\u751f\u3059\u308b\u3068\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306e\u53ef\u80fd\u6027\n    processString(*str_ptr);\n    delete str_ptr;\n}\n\n\/\/ \u4f8b\u5916\u5b89\u5168\u306a\u5b9f\u88c5\nvoid safeFunction() {\n    \/\/ \u30b9\u30de\u30fc\u30c8\u30dd\u30a4\u30f3\u30bf\u3092\u4f7f\u7528\n    std::unique_ptr&lt;std::string&gt; str_ptr = \n        std::make_unique&lt;std::string&gt;(\"Hello\");\n    processString(*str_ptr);\n    \/\/ \u81ea\u52d5\u7684\u306b\u89e3\u653e\u3055\u308c\u308b\n}\n\n\/\/ \u3055\u3089\u306b\u826f\u3044\u5b9f\u88c5\nvoid betterFunction() {\n    std::string str = \"Hello\";  \/\/ \u30b9\u30bf\u30c3\u30af\u4e0a\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n    processString(str);\n    \/\/ \u30b9\u30b3\u30fc\u30d7\u3092\u629c\u3051\u308b\u3068\u81ea\u52d5\u7684\u306b\u89e3\u653e\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-13\">\u6587\u5b57\u30b3\u30fc\u30c9\u95a2\u9023\u306e\u554f\u984c\u3078\u306e\u5bfe\u51e6\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u6587\u5b57\u30b3\u30fc\u30c9\u306e\u6271\u3044\u306f\u3001\u7279\u306b\u56fd\u969b\u5316\u5bfe\u5fdc\u3067\u91cd\u8981\u306a\u8ab2\u984c\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u554f\u984c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ UTF-8\u6587\u5b57\u5217\u306e\u6b63\u3057\u3044\u51e6\u7406\n#include &lt;codecvt&gt;\n#include &lt;locale&gt;\n\nclass UnicodeHandler {\npublic:\n    \/\/ UTF-8\u304b\u3089\u30ef\u30a4\u30c9\u6587\u5b57\u5217\u3078\u306e\u5909\u63db\n    static std::wstring utf8_to_wide(const std::string&amp; utf8_str) {\n        std::wstring_convert&lt;std::codecvt_utf8_utf16&lt;wchar_t&gt;&gt; converter;\n        return converter.from_bytes(utf8_str);\n    }\n\n    \/\/ \u30ef\u30a4\u30c9\u6587\u5b57\u5217\u304b\u3089UTF-8\u3078\u306e\u5909\u63db\n    static std::string wide_to_utf8(const std::wstring&amp; wide_str) {\n        std::wstring_convert&lt;std::codecvt_utf8_utf16&lt;wchar_t&gt;&gt; converter;\n        return converter.to_bytes(wide_str);\n    }\n};\n\n\/\/ \u4f7f\u7528\u4f8b\nvoid handleUnicode() {\n    std::string utf8_text = \"\u3053\u3093\u306b\u3061\u306f\u4e16\u754c\";  \/\/ UTF-8\u6587\u5b57\u5217\n\n    \/\/ \u6587\u5b57\u6570\u3092\u6b63\u3057\u304f\u30ab\u30a6\u30f3\u30c8\n    std::wstring wide_text = UnicodeHandler::utf8_to_wide(utf8_text);\n    size_t char_count = wide_text.length();  \/\/ \u6b63\u3057\u3044\u6587\u5b57\u6570\n\n    \/\/ \u6587\u5b57\u5358\u4f4d\u3067\u306e\u64cd\u4f5c\n    std::string processed = UnicodeHandler::wide_to_utf8(wide_text);\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30ed\u30b1\u30fc\u30eb\u4f9d\u5b58\u306e\u554f\u984c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ed\u30b1\u30fc\u30eb\u8a2d\u5b9a\u306e\u9069\u5207\u306a\u7ba1\u7406\nclass LocaleManager {\npublic:\n    LocaleManager(const std::string&amp; locale_name) \n        : old_locale_(std::locale::global(std::locale(locale_name))) {}\n\n    ~LocaleManager() {\n        std::locale::global(old_locale_);\n    }\n\nprivate:\n    std::locale old_locale_;\n};\n\n\/\/ \u4f7f\u7528\u4f8b\nvoid processWithLocale() {\n    try {\n        LocaleManager lm(\"ja_JP.UTF-8\");\n        \/\/ \u30ed\u30b1\u30fc\u30eb\u4f9d\u5b58\u306e\u51e6\u7406\n        std::string str = \"\u30c6\u30b9\u30c8\u6587\u5b57\u5217\";\n        \/\/ \u51e6\u7406\u5b8c\u4e86\u6642\u306b\u81ea\u52d5\u7684\u306b\u5143\u306e\u30ed\u30b1\u30fc\u30eb\u306b\u623b\u308b\n    } catch (const std::runtime_error&amp; e) {\n        std::cerr &lt;&lt; \"Locale error: \" &lt;&lt; e.what() &lt;&lt; std::endl;\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u306e\u7279\u5b9a\u3068\u6539\u5584<\/h3>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u3092\u7279\u5b9a\u3057\u3001\u6539\u5584\u3059\u308b\u305f\u3081\u306e\u624b\u6cd5\u3092\u898b\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6e2c\u5b9a\u30c4\u30fc\u30eb<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u7c21\u5358\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6e2c\u5b9a\u30af\u30e9\u30b9\nclass PerformanceTimer {\n    std::chrono::high_resolution_clock::time_point start_;\n    std::string operation_name_;\n\npublic:\n    PerformanceTimer(const std::string&amp; name) \n        : start_(std::chrono::high_resolution_clock::now())\n        , operation_name_(name) {}\n\n    ~PerformanceTimer() {\n        auto end = std::chrono::high_resolution_clock::now();\n        auto duration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;\n            (end - start_).count();\n        std::cout &lt;&lt; operation_name_ &lt;&lt; \" took \" &lt;&lt; duration &lt;&lt; \"\u03bcs\\n\";\n    }\n};\n\n\/\/ \u4f7f\u7528\u4f8b\nvoid measureStringOperations() {\n    {\n        PerformanceTimer timer(\"String Concatenation\");\n        std::string result;\n        for (int i = 0; i &lt; 1000; ++i) {\n            result += \"test\";\n        }\n    }\n\n    {\n        PerformanceTimer timer(\"Optimized Concatenation\");\n        std::string result;\n        result.reserve(4000);\n        for (int i = 0; i &lt; 1000; ++i) {\n            result += \"test\";\n        }\n    }\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u4e00\u822c\u7684\u306a\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u306e\u6539\u5584<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30e1\u30e2\u30ea\u5272\u308a\u5f53\u3066\u306e\u6700\u9069\u5316\nvoid optimizeAllocations() {\n    \/\/ \u554f\u984c\u306e\u3042\u308b\u30b3\u30fc\u30c9\n    std::vector&lt;std::string&gt; bad_vec;\n    for (int i = 0; i &lt; 1000; ++i) {\n        bad_vec.push_back(\"test\");  \/\/ \u6bce\u56de\u30e1\u30e2\u30ea\u518d\u5272\u308a\u5f53\u3066\n    }\n\n    \/\/ \u6700\u9069\u5316\u3055\u308c\u305f\u30b3\u30fc\u30c9\n    std::vector&lt;std::string&gt; good_vec;\n    good_vec.reserve(1000);  \/\/ \u4e8b\u524d\u306b\u5fc5\u8981\u306a\u5bb9\u91cf\u3092\u78ba\u4fdd\n    for (int i = 0; i &lt; 1000; ++i) {\n        good_vec.push_back(\"test\");\n    }\n}\n\n\/\/ \u4e0d\u8981\u306a\u30b3\u30d4\u30fc\u306e\u524a\u9664\nclass StringProcessor {\n    std::string data_;\n\npublic:\n    \/\/ \u554f\u984c\u306e\u3042\u308b\u5b9f\u88c5\n    void badProcess(std::string str) {  \/\/ \u5024\u6e21\u3057\n        data_ = str;  \/\/ \u30b3\u30d4\u30fc\u304c\u767a\u751f\n    }\n\n    \/\/ \u6700\u9069\u5316\u3055\u308c\u305f\u5b9f\u88c5\n    void goodProcess(const std::string&amp; str) {  \/\/ const\u53c2\u7167\n        data_ = str;  \/\/ 1\u56de\u306e\u30b3\u30d4\u30fc\u3067\u6e08\u3080\n    }\n\n    \/\/ \u30e0\u30fc\u30d6\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u3092\u6d3b\u7528\n    void bestProcess(std::string&amp;&amp; str) {  \/\/ \u53f3\u8fba\u5024\u53c2\u7167\n        data_ = std::move(str);  \/\/ \u30b3\u30d4\u30fc\u306a\u3057\u3067\u79fb\u52d5\n    }\n};<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u554f\u984c\u306b\u5bfe\u3059\u308b\u7406\u89e3\u3068\u9069\u5207\u306a\u5bfe\u51e6\u65b9\u6cd5\u3092\u8eab\u306b\u3064\u3051\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u4fe1\u983c\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30e2\u30c0\u30f3C++\u3067\u306e\u65b0\u6a5f\u80fd\u306b\u3064\u3044\u3066\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-15\">\u30e2\u30c0\u30f3C++\u306b\u304a\u3051\u308bstd::string\u306e\u65b0\u6a5f\u80fd\u3068\u6d3b\u7528\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-16\">C++17\u3067\u8ffd\u52a0\u3055\u308c\u305f\u6587\u5b57\u5217\u64cd\u4f5c\u6a5f\u80fd<\/h3>\n\n\n\n<p>C++17\u3067\u306f\u3001std::string\u306e\u6a5f\u80fd\u304c\u5927\u5e45\u306b\u5f37\u5316\u3055\u308c\u3001\u3088\u308a\u52b9\u7387\u7684\u306a\u6587\u5b57\u5217\u64cd\u4f5c\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>string_view\u306e\u5c0e\u5165<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;string_view&gt;\n\n\/\/ string_view\u306e\u57fa\u672c\u7684\u306a\u4f7f\u7528\u6cd5\nvoid demonstrate_string_view() {\n    \/\/ \u5f93\u6765\u306e\u65b9\u6cd5\uff08\u30b3\u30d4\u30fc\u304c\u767a\u751f\uff09\n    void process_string(const std::string&amp; str);\n\n    \/\/ string_view\u3092\u4f7f\u7528\uff08\u30b3\u30d4\u30fc\u306a\u3057\uff09\n    void process_string_view(std::string_view sv) {\n        std::cout &lt;&lt; \"Length: \" &lt;&lt; sv.length() &lt;&lt; std::endl;\n        std::cout &lt;&lt; \"Content: \" &lt;&lt; sv &lt;&lt; std::endl;\n    }\n\n    \/\/ \u4f7f\u7528\u4f8b\n    std::string str = \"Hello World\";\n    const char* literal = \"Hello World\";\n\n    process_string_view(str);       \/\/ std::string\u304b\u3089\u5909\u63db\n    process_string_view(literal);   \/\/ \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u304b\u3089\u76f4\u63a5\u5909\u63db\n    process_string_view(str.substr(0, 5));  \/\/ \u90e8\u5206\u6587\u5b57\u5217\u3082\u52b9\u7387\u7684\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u3088\u308a\u67d4\u8edf\u306a\u6587\u5b57\u5217\u64cd\u4f5c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u65b0\u3057\u3044\u691c\u7d22\u6a5f\u80fd\nvoid demonstrate_new_search() {\n    std::string str = \"Hello World\";\n\n    \/\/ \u5148\u982d\u304b\u3089\u306e\u691c\u7d22\n    if (str.starts_with(\"Hello\")) {  \/\/ C++20\n        std::cout &lt;&lt; \"Starts with Hello\" &lt;&lt; std::endl;\n    }\n\n    \/\/ \u672b\u5c3e\u304b\u3089\u306e\u691c\u7d22\n    if (str.ends_with(\"World\")) {    \/\/ C++20\n        std::cout &lt;&lt; \"Ends with World\" &lt;&lt; std::endl;\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">C++20\u3067\u306e\u6587\u5b57\u5217\u51e6\u7406\u306e\u6539\u5584\u70b9<\/h3>\n\n\n\n<p>C++20\u3067\u306f\u3001\u3055\u3089\u306b\u4fbf\u5229\u306a\u6a5f\u80fd\u304c\u8ffd\u52a0\u3055\u308c\u3001\u6587\u5b57\u5217\u51e6\u7406\u304c\u3088\u308a\u76f4\u611f\u7684\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>contains\u30e1\u30bd\u30c3\u30c9\u306e\u8ffd\u52a0<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">void demonstrate_contains() {\n    std::string str = \"Hello World\";\n\n    \/\/ \u6587\u5b57\u5217\u306e\u5305\u542b\u30c1\u30a7\u30c3\u30af\n    if (str.contains(\"World\")) {\n        std::cout &lt;&lt; \"Found World\" &lt;&lt; std::endl;\n    }\n\n    \/\/ \u6587\u5b57\u306e\u5305\u542b\u30c1\u30a7\u30c3\u30af\n    if (str.contains('W')) {\n        std::cout &lt;&lt; \"Found W\" &lt;&lt; std::endl;\n    }\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u6587\u5b57\u5217\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u6a5f\u80fd<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;format&gt;\n\nvoid demonstrate_formatting() {\n    \/\/ \u57fa\u672c\u7684\u306a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\n    std::string result = std::format(\"Hello, {}!\", \"World\");\n\n    \/\/ \u6570\u5024\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\n    int value = 42;\n    double pi = 3.14159;\n    std::string formatted = std::format(\"Value: {}, Pi: {:.2f}\", value, pi);\n\n    \/\/ \u4f4d\u7f6e\u5f15\u6570\u306e\u4f7f\u7528\n    std::string reordered = std::format(\"{1} comes before {0}\", \"World\", \"Hello\");\n\n    \/\/ \u6761\u4ef6\u4ed8\u304d\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\n    bool condition = true;\n    std::string conditional = std::format(\"{} is {}\", \n        \"The condition\", condition ? \"true\" : \"false\");\n}<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>constexpr\u6587\u5b57\u5217\u64cd\u4f5c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u6587\u5b57\u5217\u64cd\u4f5c\nconstexpr bool check_string() {\n    std::string_view sv = \"Hello World\";\n    return sv.starts_with(\"Hello\") &amp;&amp; sv.ends_with(\"World\");\n}\n\nstatic_assert(check_string(), \"String check failed\");<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-18\">\u5c06\u6765\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u4e88\u5b9a\u3055\u308c\u3066\u3044\u308b\u6a5f\u80fd\u3068\u5bfe\u5fdc\u65b9\u6cd5<\/h3>\n\n\n\n<p>C++23\u4ee5\u964d\u3067\u691c\u8a0e\u3055\u308c\u3066\u3044\u308b\u6a5f\u80fd\u3068\u3001\u305d\u308c\u3089\u3078\u306e\u6e96\u5099\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Unicode\u5bfe\u5fdc\u306e\u5f37\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5c06\u6765\u7684\u306aUnicode\u51e6\u7406\u306e\u4f8b\uff08\u73fe\u5728\u306e\u4ee3\u66ff\u5b9f\u88c5\uff09\nclass UnicodeString {\npublic:\n    \/\/ UTF-8\u6587\u5b57\u5217\u306e\u6b63\u898f\u5316\n    static std::string normalize(const std::string&amp; input) {\n        \/\/ \u73fe\u5728\u306e\u5b9f\u88c5\uff08\u5c06\u6765\u7684\u306b\u306fstd::text\u7b49\u3067\u7f6e\u304d\u63db\u3048\u4e88\u5b9a\uff09\n        return normalize_utf8(input);\n    }\n\n    \/\/ \u6587\u5b57\u7d20\u30af\u30e9\u30b9\u30bf\u306e\u51e6\u7406\n    static std::vector&lt;std::string&gt; split_graphemes(const std::string&amp; input) {\n        \/\/ \u73fe\u5728\u306e\u5b9f\u88c5\n        return split_into_graphemes(input);\n    }\n\nprivate:\n    static std::string normalize_utf8(const std::string&amp; input) {\n        \/\/ \u5b9f\u88c5\u7701\u7565\n        return input;\n    }\n\n    static std::vector&lt;std::string&gt; split_into_graphemes(const std::string&amp; input) {\n        \/\/ \u5b9f\u88c5\u7701\u7565\n        return {input};\n    }\n};<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5c06\u6765\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u6a5f\u80fd\u3078\u306e\u6e96\u5099\nclass StringMatcher {\npublic:\n    \/\/ \u73fe\u5728\u306e\u5b9f\u88c5\uff08\u5c06\u6765\u7684\u306b\u306f\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u69cb\u6587\u3067\u7f6e\u304d\u63db\u3048\u4e88\u5b9a\uff09\n    enum class MatchType {\n        Exact,\n        Prefix,\n        Suffix,\n        Contains,\n        Regex\n    };\n\n    static bool match(const std::string&amp; text, \n                     const std::string&amp; pattern,\n                     MatchType type) {\n        switch (type) {\n            case MatchType::Exact:\n                return text == pattern;\n            case MatchType::Prefix:\n                return text.starts_with(pattern);\n            case MatchType::Suffix:\n                return text.ends_with(pattern);\n            case MatchType::Contains:\n                return text.find(pattern) != std::string::npos;\n            case MatchType::Regex:\n                return std::regex_match(text, std::regex(pattern));\n        }\n        return false;\n    }\n};<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u5c06\u6765\u306e\u5909\u66f4\u306b\u5099\u3048\u305f\u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5c06\u6765\u306e\u5909\u66f4\u306b\u5bfe\u5fdc\u3057\u3084\u3059\u3044\u8a2d\u8a08\nclass StringProcessor {\npublic:\n    \/\/ \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u5b89\u5b9a\u3055\u305b\u308b\n    virtual std::string process(const std::string&amp; input) = 0;\n    virtual ~StringProcessor() = default;\n};\n\n\/\/ \u5177\u4f53\u7684\u306a\u5b9f\u88c5\nclass ModernStringProcessor : public StringProcessor {\npublic:\n    std::string process(const std::string&amp; input) override {\n        \/\/ \u73fe\u5728\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306e\u5b9f\u88c5\n        return std::format(\"Processed: {}\", input);\n    }\n};\n\n\/\/ \u5c06\u6765\u7684\u306a\u5b9f\u88c5\u306b\u5099\u3048\u305f\u62e1\u5f35\u30dd\u30a4\u30f3\u30c8\nclass FutureStringProcessor : public StringProcessor {\npublic:\n    std::string process(const std::string&amp; input) override {\n        \/\/ \u5c06\u6765\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306e\u5b9f\u88c5\n        return \"Future implementation\";\n    }\n};<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u65b0\u6a5f\u80fd\u3068\u5c06\u6765\u306e\u5c55\u671b\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u3001\u5c06\u6765\u306e\u5909\u66f4\u306b\u5099\u3048\u305f\u9069\u5207\u306a\u8a2d\u8a08\u3092\u884c\u3046\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u5bff\u547d\u3092\u5ef6\u3070\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":{"0":"post-1623","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-cpp","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1623"}],"version-history":[{"count":1,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1623\/revisions"}],"predecessor-version":[{"id":1624,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1623\/revisions\/1624"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}