{"id":1100,"date":"2018-04-17T19:41:21","date_gmt":"2018-04-17T11:41:21","guid":{"rendered":"https:\/\/damogame.cn:15443\/wordpress\/?p=1100"},"modified":"2018-04-17T19:41:21","modified_gmt":"2018-04-17T11:41:21","slug":"c11-%e6%96%b0%e7%89%b9%e6%80%a7%e6%80%bb%e7%bb%93","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/1100","title":{"rendered":"C++11 \u65b0\u7279\u6027\u603b\u7ed3"},"content":{"rendered":"<h1 class=\"csdn_top\">C++11 \u65b0\u7279\u6027\u603b\u7ed3<\/h1>\n<div class=\"article_bar clearfix\">\n<div class=\"artical_tag\"><span class=\"original\">\u8f6c\u8f7d\u00a0<\/span><span class=\"time\">2017\u5e7404\u670809\u65e5 21:24:20<\/span><\/div>\n<ul class=\"article_tags clearfix csdn-tracking-statistics tracking-click\" data-mod=\"popu_377\">\n<li class=\"tit\">\u6807\u7b7e\uff1a<\/li>\n<li><a href=\"http:\/\/so.csdn.net\/so\/search\/s.do?q=c++&amp;t=blog\" target=\"_blank\" rel=\"noopener\">c++<\/a><\/li>\n<\/ul>\n<ul class=\"right_bar\">\n<li><button class=\"btn-noborder\"><i class=\"icon iconfont icon-read\"><\/i><span class=\"txt\">4146<\/span><\/button><\/li>\n<\/ul>\n<\/div>\n<div id=\"article_content\" class=\"article_content csdn-tracking-statistics tracking-click\" data-mod=\"popu_519\" data-dsm=\"post\">\n<div class=\"htmledit_views\">\n<h1 class=\"postTitle\"><a name=\"t0\"><\/a><a href=\"http:\/\/www.cnblogs.com\/George1994\/p\/6684989.html\" target=\"_blank\" rel=\"noopener\">http:\/\/www.cnblogs.com\/George1994\/p\/6684989.html<\/a><\/h1>\n<div class=\"clear\"><\/div>\n<div class=\"postBody\">\n<div id=\"cnblogs_post_body\" class=\"cnblogs-markdown\">\n<h1 id=\"\u524d\u8a00\"><a name=\"t1\"><\/a>\u524d\u8a00<\/h1>\n<p>\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\uff0c\u611f\u8c22\uff01<\/p>\n<h1 id=\"c11-\u7684\u65b0\u7279\u6027\"><a name=\"t2\"><\/a>C++11 \u7684\u65b0\u7279\u6027<\/h1>\n<h2 id=\"\u53d8\u91cf\u548c\u57fa\u672c\u7c7b\u578b\"><a name=\"t3\"><\/a>1 \u53d8\u91cf\u548c\u57fa\u672c\u7c7b\u578b<\/h2>\n<h3 id=\"long-long-\u7c7b\u578b\"><a name=\"t4\"><\/a>1.1 long long \u7c7b\u578b<\/h3>\n<p>\u6269\u5c55\u7cbe\u5ea6\u6d6e\u70b9\u6570\uff0c10\u4f4d\u6709\u6548\u6570\u5b57<\/p>\n<h3 id=\"\u5217\u8868\u521d\u59cb\u5316\"><a name=\"t5\"><\/a>1.2 \u5217\u8868\u521d\u59cb\u5316<\/h3>\n<p>\u521d\u59cb\u5316\u7684\u51e0\u79cd\u4e0d\u540c\u5f62\u5f0f\uff0c\u5176\u4e2d\u7528\u82b1\u62ec\u53f7\u6765\u521d\u59cb\u5316\u53d8\u91cf\u79f0\u4e3a\u5217\u8868\u521d\u59cb\u5316\uff1b<\/p>\n<p>\u6bd4\u5982\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\">\r\n<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i = <span class=\"dv\">0<\/span>;\r\n<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i = {<span class=\"dv\">0<\/span>};\r\n<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i{<span class=\"dv\">0<\/span>};\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">i<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dv\">0<\/span><span class=\"hljs-function\">)<\/span>;<\/code><\/pre>\n<\/div>\n<p>\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5f53\u7528\u4e8e\u5185\u7f6e\u7c7b\u578b\u7684\u53d8\u91cf\u65f6\uff0c\u8fd9\u79cd\u521d\u59cb\u5316\u5f62\u5f0f\u6709\u4e00\u4e2a\u91cd\u8981\u7684\u7279\u70b9\uff1a\u5982\u679c\u6211\u4eec\u4f7f\u7528\u521d\u59cb\u5316\u4e14\u521d\u59cb\u503c\u5b58\u5728\u4e22\u5931\u4fe1\u606f\u7684\u98ce\u9669\uff0c\u5219\u7f16\u8bd1\u5668\u62a5\u9519\uff1b<\/p>\n<p>\u4f8b\u5982\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-keyword\">long<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">double<\/span><\/span> ld = <span class=\"fl\">3.1414141414<\/span>;\r\n<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> a{ld}, b = {ld}; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u62a5\u9519<\/span><\/span>\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">c<\/span><span class=\"hljs-params\">(ld)<\/span>, d <\/span>= ld; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u6b63\u786e<\/span><\/span>\r\n\r\n<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"a:\"<\/span><\/span> &lt;&lt; a &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"b:\"<\/span><\/span> &lt;&lt; b &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"c:\"<\/span><\/span> &lt;&lt; c &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"d\"<\/span><\/span> &lt;&lt; d &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;<\/code><\/pre>\n<\/div>\n<p>\u8fd0\u884c\u7684\u65f6\u5019\uff0ca,b\u5219\u4f1a\u63d0\u793a\u62a5\u9519\u4fe1\u606f\uff1aerror: type &#8216;long double&#8217; cannot be narrowed to &#8216;int&#8217; in initializer list [-Wc++11-narrowing]\uff0c\u8fd9\u662f\u56e0\u4e3a\u4f7f\u7528long double\u7684\u503c\u521d\u59cb\u5316int\u53d8\u91cf\u65f6\u53ef\u80fd\u4f1a\u4e22\u5931\u6570\u636e\uff0c\u6240\u4ee5\u62d2\u7edda\u548cb\u7684\u521d\u59cb\u5316\u8bf7\u6c42\uff1b\u867d\u7136c,d\u867d\u7136\u6ca1\u6709\u62a5\u9519\uff0c\u4f46\u662f\u786e\u5b9e\u4e22\u5931\u4e86\u6570\u636e\uff1b<\/p>\n<p>[\u8fd9\u662f\u4e3a\u4ec0\u4e48\uff1f]<\/p>\n<h3 id=\"nullptr-\u5e38\u91cf\"><a name=\"t6\"><\/a>1.3 nullptr \u5e38\u91cf<\/h3>\n<p>\u6709\u51e0\u79cd\u751f\u6210\u7a7a\u6307\u9488\u7684\u65b9\u6cd5\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> *p1 = <span class=\"kw\"><span class=\"hljs-literal\">nullptr<\/span><\/span>; <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u7b49\u4ef7\u4e8eint *p1 = 0;<\/span><\/span>\r\n<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> *p2 = <span class=\"dv\">0<\/span>;\r\n<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> *p3 = <span class=\"hljs-literal\">NULL<\/span>; <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u7b49\u4ef7\u4e8eint *p3 = 0;<\/span><\/span><\/code><\/pre>\n<\/div>\n<p>\u5728\u65b0\u6807\u51c6\u4e0b\uff0c\u5efa\u8bae\u5c3d\u91cf\u4f7f\u7528\u65b0\u6807\u51c6nullptr\uff0cnullptr\u662f\u4e00\u79cd\u7279\u6b8a\u7c7b\u578b\u7684\u5b57\u9762\u503c\uff0c\u5b83\u53ef\u4ee5\u88ab\u8f6c\u6362\u6210\u4efb\u610f\u5176\u5b83\u7684\u6307\u9488\u7c7b\u578b\uff0c\u867d\u7136\u5176\u5b83\u7684\u65b9\u5f0f\u4e5f\u662f\u53ef\u4ee5\u7684\uff1b<\/p>\n<h3 id=\"constexpr-\u53d8\u91cf\"><a name=\"t7\"><\/a>1.4 constexpr \u53d8\u91cf<\/h3>\n<p>\u5c06\u53d8\u91cf\u58f0\u660e\u4e3aconstexpr\u7c7b\u578b\u4ee5\u4fbf\u7531\u7f16\u8bd1\u5668\u6765\u9a8c\u8bc1\u53d8\u91cf\u7684\u503c\u662f\u5426\u662f\u4e00\u4e2a\u5e38\u91cf\u8868\u8fbe\u5f0f\uff1b<\/p>\n<p>\u58f0\u660e\u4e3aconstexpr\u7684\u53d8\u91cf\u4e00\u5b9a\u662f\u4e00\u4e2a\u5e38\u91cf\uff0c\u800c\u4e14\u5fc5\u987b\u7528\u5e38\u91cf\u8868\u8fbe\u5f0f\u6765\u521d\u59cb\u5316\uff0c\u6bd4\u5982\u8bf4\u4e0b\u9762\u7684\u60c5\u51b5\u5219\u662f\u4e0d\u6b63\u786e\u7684\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> t = <span class=\"dv\">10<\/span>;\r\n<span class=\"kw\"><span class=\"hljs-keyword\">constexpr<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> q = t + <span class=\"dv\">20<\/span>;\r\n<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"q\"<\/span><\/span> &lt;&lt; q &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;<\/code><\/pre>\n<\/div>\n<p>\u9700\u8981\u5c06t\u58f0\u660e\u4e3a\u00a0<code>const<\/code>\u00a0\u624d\u662f\u6b63\u786e\u7684\uff1b<\/p>\n<p>\u4e00\u822c\u6765\u8bf4\uff0c\u5982\u679c\u4f60\u8ba4\u5b9a\u53d8\u91cf\u662f\u4e00\u4e2a\u5e38\u91cf\u8868\u8fbe\u5f0f\uff0c\u90a3\u5c31\u628a\u5b83\u58f0\u660e\u4e3aconstexpr\u7c7b\u578b\uff1b<\/p>\n<h3 id=\"\u7c7b\u578b\u522b\u540d\u58f0\u660e\"><a name=\"t8\"><\/a>1.5 \u7c7b\u578b\u522b\u540d\u58f0\u660e<\/h3>\n<p>\u4f7f\u7528\u7c7b\u578b\u522b\u540d\u53ef\u4ee5\u4f7f\u590d\u6742\u7684\u7c7b\u578b\u540d\u5b57\u53d8\u5f97\u66f4\u7b80\u5355\u660e\u4e86\uff0c\u6613\u4e8e\u7406\u89e3\u548c\u4f7f\u7528\uff1b<\/p>\n<p>\u73b0\u5728\u6709\u4e24\u79cd\u65b9\u6cd5\u53ef\u4ee5\u7528\u6765\u5b9a\u4e49\u7c7b\u578b\u522b\u540d\uff0c\u4e00\u79cd\u662f\u00a0<code>typedef<\/code>\u00a0\uff0c\u53e6\u4e00\u79cd\u5219\u662f\u65b0\u6807\u51c6\u4e2d\u7684\u00a0<code>using<\/code>\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iostream&gt;<\/span><\/span><\/span>\r\n<span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> <span class=\"kw\"><span class=\"hljs-keyword\">namespace<\/span><\/span> <span class=\"hljs-built_in\">std<\/span>;\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">add<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\"> val)<\/span> <\/span>{\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">10<\/span> + val;\r\n}\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">typedef<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">double<\/span><\/span> dnum;\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u5b57\u7b26\u6307\u9488<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">typedef<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">char<\/span><\/span> *pstring;\r\n\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u51fd\u6570<\/span><\/span>\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u8fd4\u56de\u503c\u7c7b\u578b\u4e3aint\uff0c\u53c2\u6570\u7c7b\u578b\u4e3aint\u7684\u51fd\u6570<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">typedef<\/span><\/span><\/span> <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">func<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\">)<\/span>;\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u51fd\u6570\u6307\u9488\uff0c\u6307\u5411\u8fd4\u56de\u503c\u7c7b\u578b\u4e3aint\uff0c\u53c2\u6570\u7c7b\u578b\u4e3aint\u7684\u51fd\u6570<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">typedef<\/span><\/span><\/span> <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-title\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-params\">(*pfunc)<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\">)<\/span>;\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u51fd\u6570\u5f15\u7528\uff0c\u6307\u5411\u8fd4\u56de\u503c\u7c7b\u578b\u4e3aint\uff0c\u53c2\u6570\u7c7b\u578b\u4e3aint\u7684\u51fd\u6570<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">typedef<\/span><\/span><\/span> <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-title\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-params\">(&amp;tfunc)<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\">)<\/span>;\r\n\r\n    pfunc pfunc_add = <span class=\"kw\"><span class=\"hljs-literal\">nullptr<\/span><\/span>;\r\n    pfunc_add = add;\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"\u51fd\u6570\u6307\u9488\uff0cresult is \"<\/span><\/span> &lt;&lt; pfunc_add(<span class=\"dv\">10<\/span>) &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    tfunc tfunc_add = add;\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"\u51fd\u6570\u5f15\u7528\uff0cresult is \"<\/span><\/span> &lt;&lt; tfunc_add(<span class=\"dv\">10<\/span>) &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    func &amp;func_add = add; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u8fd9\u91cc\u4f7f\u7528\u6307\u9488\u6216\u8005\u5f15\u7528\u90fd\u53ef\u4ee5<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"\u51fd\u6570\uff0cresult is \"<\/span><\/span> &lt;&lt; func_add(<span class=\"dv\">10<\/span>) &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6570\u7ec4<\/span><\/span>\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u5143\u7d20\u7c7b\u578b\u4e3aint\uff0c\u4e2a\u6570\u4e3a10\u7684\u6570\u7ec4<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">typedef<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> arr[<span class=\"dv\">10<\/span>];\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6570\u7ec4\u6307\u9488\uff0c\u6307\u5411\u5143\u7d20\u7c7b\u578b\u4e3aint\uff0c\u4e2a\u6570\u4e3a10\u7684\u6570\u7ec4<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">typedef<\/span><\/span><\/span> <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-title\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-params\">(*parr)<\/span>[<\/span><span class=\"dv\">10<\/span><span class=\"hljs-function\">]<\/span>;\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6570\u7ec4\u5f15\u7528\uff0c\u7ed1\u5b9a\u5230\u5143\u7d20\u7c7b\u578b\u4e3aint\uff0c\u4e2a\u6570\u4e3a10\u7684\u6570\u7ec4<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">typedef<\/span><\/span><\/span> <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-title\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-params\">(&amp;tparr)<\/span>[<\/span><span class=\"dv\">10<\/span><span class=\"hljs-function\">]<\/span>;\r\n\r\n\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> dnum2 = <span class=\"dt\"><span class=\"hljs-keyword\">double<\/span><\/span>;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> pstring2 = <span class=\"dt\"><span class=\"hljs-keyword\">char<\/span><\/span>*;\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> func2 = <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>);\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> pfunc2 = <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>(*)(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>);\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> arr2 = <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>[<span class=\"dv\">10<\/span>];\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> parr2 = <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>(*)[<span class=\"dv\">10<\/span>];\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> tparr2 = <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>(&amp;)[<span class=\"dv\">10<\/span>];\r\n\r\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"Hello, World!\"<\/span><\/span> &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<p>\u4f46\u662f\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5982\u679c\u67d0\u4e2a\u7c7b\u578b\u522b\u540d\u6307\u4ee3\u7684\u662f\u590d\u5408\u7c7b\u578b\u6216\u8005\u5e38\u91cf\uff0c\u90a3\u4e48\u5c31\u4f1a\u4ea7\u751f\u610f\u60f3\u4e0d\u5230\u7684\u540e\u679c\uff1b<\/p>\n<p>\u6bd4\u5982\u8bf4<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">typedef<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">char<\/span><\/span> *pstring;\r\n<span class=\"dt\"><span class=\"hljs-keyword\">const<\/span><\/span> pstring cstr = <span class=\"dv\">0<\/span>;<\/code><\/pre>\n<\/div>\n<p>\u6309\u7167\u6211\u4eec\u6b63\u5e38\u7684\u7406\u89e3\u5c31\u662f\uff0c\u5c06char*\u66ff\u6362\u6389pstring\uff0c\u5f97\u5230 const char* cstr\uff1b\u7136\u800c\u4e8b\u5b9e\u662fpstring\u662f\u4e00\u4e2a\u5b57\u7b26\u6307\u9488\uff0c\u5176\u57fa\u672c\u6570\u636e\u7c7b\u578b\u662f\u4e2a\u6307\u9488\uff0c\u6b64\u65f6\u7528\u6b64\u5b57\u7b26\u6307\u9488\u53bb\u58f0\u660ecstr\uff0c\u5f97\u5230\u7684\u662f\u4e00\u4e2a\u5e38\u91cf\u7684\u5b57\u7b26\u6307\u9488\uff0c\u4f46\u662f\u6309\u7167\u672c\u610f\u662f\u6307\u5411char\u7684\u5e38\u91cf\u6307\u9488\uff0c\u5176\u57fa\u672c\u7c7b\u578b\u662fchar\uff0c\u4e5f\u5c31\u662f\u8bf4\u4e24\u8005\u4fee\u9970\u7684\u4e1c\u897f\u662f\u4e0d\u4e00\u6837\u7684\uff01<\/p>\n<p>\u4f46\u662f\u5982\u679c\u662f\u5f15\u7528\u53d8\u91cf\u5219\u6ca1\u6709\u5173\u7cfb\u3002<\/p>\n<p>\u53c2\u8003\u6587\u7ae0<\/p>\n<blockquote><p><a href=\"http:\/\/cuckootan.me\/2016\/05\/06\/C\/C++\/C++%20-%20%E7%B1%BB%E5%9E%8B%E5%88%AB%E5%90%8D%E4%BB%A5%E5%8F%8A%E7%B1%BB%E5%9E%8B%E7%9A%84%E8%87%AA%E5%8A%A8%E6%8E%A8%E6%96%AD\/\" target=\"_blank\" rel=\"noopener\">C++ &#8211; \u7c7b\u578b\u522b\u540d\u4ee5\u53ca\u7c7b\u578b\u7684\u81ea\u52a8\u63a8\u65ad<\/a><\/p><\/blockquote>\n<blockquote><p><a href=\"http:\/\/www.cnblogs.com\/TenosDoIt\/p\/3164081.html\" target=\"_blank\" rel=\"noopener\">C\/C++ \u51fd\u6570\u6307\u9488\u7684\u7528\u6cd5<\/a><\/p><\/blockquote>\n<h3 id=\"auto-\u7c7b\u578b\u6307\u793a\u7b26\"><a name=\"t9\"><\/a>1.6 auto \u7c7b\u578b\u6307\u793a\u7b26<\/h3>\n<p>auto\u8ba9\u7f16\u8bd1\u5668\u901a\u8fc7\u521d\u59cb\u503c\u6765\u63a8\u7b97\u53d8\u91cf\u7684\u7c7b\u578b\uff0c\u6240\u4ee5\uff0c\u5176\u5b9a\u4e49\u7684\u53d8\u91cf\u5fc5\u987b\u8981\u6709\u521d\u59cb\u503c\uff1b<\/p>\n<p>\u4f7f\u7528auto\u4e5f\u80fd\u5728\u4e00\u6761\u8bed\u53e5\u4e2d\u58f0\u660e\u591a\u4e2a\u53d8\u91cf\uff1b\u56e0\u4e3a\u4e00\u6761\u58f0\u660e\u8bed\u53e5\u53ea\u80fd\u6709\u4e00\u4e2a\u57fa\u672c\u6570\u636e\u7c7b\u578b\uff0c\u6240\u4ee5\u8be5\u8bed\u53e5\u4e2d\u6240\u6709\u7684\u53d8\u91cf\u7684\u521d\u59cb\u57fa\u672c\u6570\u636e\u7c7b\u578b\u90fd\u5fc5\u987b\u662f\u4e00\u6837\u7684\uff1b<\/p>\n<ul>\n<li>\u9876\u5c42const\uff1a\u6307\u9488\u672c\u8eab\u662f\u4e00\u4e2a\u5e38\u91cf\uff1b<\/li>\n<li>\u5e95\u5c42const\uff1a\u6307\u9488\u6307\u5411\u7684\u5bf9\u8c61\u662f\u4e00\u4e2a\u5e38\u91cf\uff1b<\/li>\n<\/ul>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i = <span class=\"dv\">0<\/span>;\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">const<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> ci = i;\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> b = &amp;i; <span class=\"co\"><span class=\"hljs-comment\">\/\/ b\u662f\u4e00\u4e2a\u6574\u5f62\u6307\u9488\uff08\u6574\u6570\u7684\u5730\u5740\u5c31\u662f\u6307\u5411\u6574\u6570\u7684\u6307\u9488\uff09<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> c = &amp;ci; <span class=\"co\"><span class=\"hljs-comment\">\/\/ c\u662f\u4e00\u4e2a\u6307\u5411\u6574\u6570\u5e38\u91cf\u7684\u6307\u9488\uff08\u5bf9\u5e38\u91cf\u5bf9\u8c61\u53d6\u5730\u5740\u662f\u4e00\u79cd\u5e95\u5c42const\uff09<\/span><\/span>\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"decltype-\u7c7b\u578b\u6307\u793a\u7b26\"><a name=\"t10\"><\/a>1.7 decltype \u7c7b\u578b\u6307\u793a\u7b26<\/h3>\n<p>\u4f5c\u7528\uff1a\u9009\u62e9\u5e76\u8fd4\u56de\u64cd\u4f5c\u6570\u7684\u6570\u636e\u7c7b\u578b\uff1b<\/p>\n<h4 id=\"decltype-\u548c-auto-\u7684\u533a\u522b\">1.7.1 decltype \u548c auto \u7684\u533a\u522b<\/h4>\n<ul>\n<li>\u5904\u7406\u9876\u5c42const\u548c\u5f15\u7528\u7684\u65b9\u5f0f\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-keyword\">const<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> ci = <span class=\"dv\">0<\/span>, &amp;cj = ci;\r\n<span class=\"kw\"><span class=\"hljs-keyword\">decltype<\/span><\/span>(ci) x = <span class=\"dv\">0<\/span>;\r\n<span class=\"kw\"><span class=\"hljs-keyword\">decltype<\/span><\/span>(cj) y = x;\r\n<span class=\"kw\"><span class=\"hljs-keyword\">decltype<\/span><\/span>(cj) z; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u62a5\u9519\uff0c\u56e0\u4e3acj\u662f\u4e00\u4e2a\u5f15\u7528\uff0c\u56e0\u6b64\u4f5c\u4e3a\u5f15\u7528\u7684 z \u5fc5\u987b\u8981\u8fdb\u884c\u521d\u59cb\u5316<\/span><\/span><\/code><\/pre>\n<\/div>\n<p>\u5f15\u7528\u4ece\u6765\u90fd\u662f\u4f5c\u4e3a\u5176\u6240\u6307\u5bf9\u8c61\u7684\u540c\u4e49\u8bcd\u51fa\u73b0\uff0c\u4e5f\u5c31\u662f\u6839\u636e\u5176\u6240\u6307\u7684\u5bf9\u8c61\u51b3\u5b9a\uff0c\u53ea\u6709\u5728decltype\u5904\u662f\u4e2a\u4f8b\u5916\uff1b<\/li>\n<li>decltype\u7684\u7ed3\u679c\u7c7b\u578b\u4e0e\u8868\u8fbe\u5f0f\u5f62\u5f0f\u5bc6\u5207\u76f8\u5173\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i = <span class=\"dv\">0<\/span>;\r\n<span class=\"kw\"><span class=\"hljs-keyword\">decltype<\/span><\/span>((i)) a; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u62a5\u9519\uff0c\u56e0\u4e3aa\u7c7b\u578b\u4e3a int&amp;\uff0c\u5fc5\u987b\u8fdb\u884c\u521d\u59cb\u5316<\/span><\/span>\r\n<span class=\"kw\"><span class=\"hljs-keyword\">decltype<\/span><\/span>(i) b; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u6b63\u786e<\/span><\/span><\/code><\/pre>\n<\/div>\n<p>\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cdecltype((variable))\u7684\u7ed3\u679c\u6c38\u8fdc\u662f\u5f15\u7528\uff0c\u800cdecltype(variable)\u7ed3\u679c\u53ea\u6709\u5f53variable\u672c\u8eab\u5c31\u662f\u4e00\u4e2a\u5f15\u7528\u65f6\u624d\u662f\u5f15\u7528\uff0c\u5176\u5b9e\u5c31\u662f\u6839\u636e\u5b83\u7684\u7c7b\u578b\u51b3\u5b9a\uff1b<\/li>\n<\/ul>\n<h3 id=\"\u7c7b\u5185\u521d\u59cb\u5316\"><a name=\"t11\"><\/a>1.8 \u7c7b\u5185\u521d\u59cb\u5316<\/h3>\n<blockquote><p>\u5efa\u8bae\u521d\u59cb\u5316\u6bcf\u4e00\u4e2a\u5185\u7f6e\u7c7b\u578b\u7684\u53d8\u91cf\uff0c\u4e3a\u4e86\u4fdd\u8bc1\u521d\u59cb\u5316\u540e\u7a0b\u5e8f\u5b89\u5168<\/p><\/blockquote>\n<h2 id=\"\u5b57\u7b26\u4e32\u5411\u91cf\u548c\u6570\u7ec4\"><a name=\"t12\"><\/a>2 \u5b57\u7b26\u4e32\u3001\u5411\u91cf\u548c\u6570\u7ec4<\/h2>\n<h3 id=\"\u4f7f\u7528-auto-\u6216-decltype-\u7f29\u5199\u7c7b\u578b\"><a name=\"t13\"><\/a>2.1 \u4f7f\u7528 auto \u6216 decltype \u7f29\u5199\u7c7b\u578b<\/h3>\n<blockquote><p>\u6ce8\u610f\u7684\u662f\uff0c\u5982\u679c\u8868\u8fbe\u5f0f\u4e2d\u5df2\u7ecf\u6709\u4e86size\u51fd\u6570\u5c31\u4e0d\u8981\u518d\u4f7f\u7528int\u4e86\uff0c\u56e0\u4e3asize\u51fd\u6570\u8fd4\u56de\u7684\u662funsigned\uff0c\u5982\u679c\u5176\u548c\u6709\u7b26\u53f7\u6570\u8fdb\u884c\u6bd4\u8f83\u7684\u65f6\u5019\uff0c\u6709\u7b26\u53f7\u6570\u4f1a\u81ea\u52a8\u7684\u8f6c\u6362\u6210\u4e00\u4e2a\u6bd4\u8f83\u5927\u7684\u65e0\u7b26\u53f7\u6570\u3002<\/p><\/blockquote>\n<h3 id=\"\u8303\u56f4-for-\u8bed\u53e5\"><a name=\"t14\"><\/a>2.2 \u8303\u56f4 for \u8bed\u53e5<\/h3>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"hljs-function\"><span class=\"hljs-built_in\">string<\/span> <span class=\"hljs-title\">str<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"st\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-string\">\"hello world\"<\/span><\/span><\/span><\/span><span class=\"hljs-function\">)<\/span>;\r\n<span class=\"kw\"><span class=\"hljs-keyword\">for<\/span><\/span> (<span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> c : str) {\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; c;\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"\u5b9a\u4e49vector\u5bf9\u8c61\u7684vector\u5411\u91cf\u7684\u5411\u91cf\"><a name=\"t15\"><\/a>2.3 \u5b9a\u4e49vector\u5bf9\u8c61\u7684vector\uff08\u5411\u91cf\u7684\u5411\u91cf\uff09<\/h3>\n<p>\u7f16\u8bd1\u5668\u6839\u636e\u6a21\u7248vector\u751f\u6210\u4e86\u4e09\u79cd\u4e0d\u540c\u7684\u7c7b\u578b\uff0c\u5206\u522b\u662f\uff1a<\/p>\n<pre><code class=\"hljs cpp\"><span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-keyword\">int<\/span>&gt;\uff0c<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-keyword\">int<\/span>&gt;&gt;, <span class=\"hljs-built_in\">vector<\/span>&lt;classname&gt;\r\n<\/code><\/pre>\n<p>\u65b0\u7684\u7248\u672c\u5df2\u7ecf\u4e0d\u9700\u8981\u518d\u6dfb\u52a0\u4e00\u4e2a\u7a7a\u683c<\/p>\n<pre><code class=\"hljs cpp\"><span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-keyword\">int<\/span>&gt; &gt;\r\n<\/code><\/pre>\n<h3 id=\"vector\u5bf9\u8c61\u7684\u5217\u8868\u521d\u59cb\u5316\"><a name=\"t16\"><\/a>2.4 vector\u5bf9\u8c61\u7684\u5217\u8868\u521d\u59cb\u5316<\/h3>\n<p>\u653e\u5728\u82b1\u62ec\u53f7\u91cc<\/p>\n<h3 id=\"\u5bb9\u5668\u7684cbegin-\u548c-cend-\u51fd\u6570\"><a name=\"t17\"><\/a>2.5 \u5bb9\u5668\u7684cbegin \u548c cend \u51fd\u6570<\/h3>\n<h3 id=\"\u6807\u51c6\u5e93begin-\u548c-end-\u51fd\u6570\"><a name=\"t18\"><\/a>2.6 \u6807\u51c6\u5e93begin \u548c end \u51fd\u6570<\/h3>\n<h3 id=\"\u4f7f\u7528auto\u548cdecltype\u7b80\u5316\u58f0\u660e\"><a name=\"t19\"><\/a>2.7 \u4f7f\u7528auto\u548cdecltype\u7b80\u5316\u58f0\u660e<\/h3>\n<h2 id=\"\u8868\u8fbe\u5f0f\"><a name=\"t20\"><\/a>3 \u8868\u8fbe\u5f0f<\/h2>\n<h3 id=\"\u9664\u6cd5\u7684\u820d\u5165\u89c4\u5219\"><a name=\"t21\"><\/a>3.1 \u9664\u6cd5\u7684\u820d\u5165\u89c4\u5219<\/h3>\n<p>\u65b0\u6807\u51c6\u4e2d\uff0c\u4e00\u5f8b\u54110\u53d6\u6574\uff08\u76f4\u63a5\u5207\u9664\u5c0f\u6570\u90e8\u5206\uff09<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-keyword\">double<\/span><\/span> a = <span class=\"dv\">12<\/span>\/<span class=\"dv\">5<\/span>;\r\n<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; a &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;<\/code><\/pre>\n<\/div>\n<p>\u8f93\u51fa\u7ed3\u679c\u4e3a2\uff0c\u5220\u6389\u4e86\u5c0f\u6570\u90e8\u5206\uff1b<\/p>\n<h3 id=\"\u7528\u5927\u62ec\u53f7\u5305\u56f4\u7684\u503c\u5217\u8868\u8d4b\u503c\"><a name=\"t22\"><\/a>3.2 \u7528\u5927\u62ec\u53f7\u5305\u56f4\u7684\u503c\u5217\u8868\u8d4b\u503c<\/h3>\n<h3 id=\"\u5c06sizeof\u7528\u4e8e\u7c7b\u6210\u5458\"><a name=\"t23\"><\/a>3.3 \u5c06sizeof\u7528\u4e8e\u7c7b\u6210\u5458<\/h3>\n<p>\u4f7f\u7528\u4f5c\u7528\u57df\u8fd0\u7b97\u7b26\u6765\u83b7\u53d6\u7c7b\u6210\u5458\u7684\u5927\u5c0f\u662f\u8bb8\u53ef\u7684\uff1b<\/p>\n<ul>\n<li>\u5bf9\u6570\u7ec4\u6267\u884csizeof\u8fd0\u7b97\u5f97\u5230\u6574\u4e2a\u6570\u7ec4\u6240\u5360\u7a7a\u95f4\u7684\u5927\u5c0f\uff0c\u7b49\u4ef7\u4e8e\u5bf9\u6570\u7ec4\u4e2d<br \/>\n\u6240\u6709\u7684\u5143\u7d20\u5404\u6267\u884c\u4e00\u6b21sizeof\u8fd0\u7b97\u5e76\u5c06\u6240\u5f97\u7ed3\u679c\u6c42\u548c\uff1b<\/li>\n<li>\u5bf9string\u5bf9\u8c61\u6216vector\u5bf9\u8c61\u6267\u884csizeof\u8fd0\u7b97\u53ea\u8fd4\u56de\u8be5\u7c7b\u578b\u56fa\u5b9a\u90e8\u5206\u7684\u5927\u5c0f\uff0c\u4e0d\u4f1a\u8ba1\u7b97\u5bf9\u8c61\u4e2d\u7684\u5143\u7d20\u5360\u7528\u591a\u5c11\u7a7a\u95f4\uff1b<\/li>\n<\/ul>\n<h2 id=\"\u8bed\u53e5\"><a name=\"t24\"><\/a>4 \u8bed\u53e5<\/h2>\n<h3 id=\"\u8303\u56f4for\u8bed\u53e5\"><a name=\"t25\"><\/a>4.1 \u8303\u56f4for\u8bed\u53e5<\/h3>\n<h2 id=\"\u51fd\u6570\"><a name=\"t26\"><\/a>5 \u51fd\u6570<\/h2>\n<h3 id=\"\u6807\u51c6\u5e93-initializer_list\u7c7b\"><a name=\"t27\"><\/a>5.1 \u6807\u51c6\u5e93 initializer_list\u7c7b<\/h3>\n<p>\u53ef\u4ee5\u5904\u7406\u4e0d\u540c\u6570\u91cf\u5b9e\u53c2\u7684\u51fd\u6570\uff0c\u524d\u63d0\u662f\u5b9e\u53c2\u7c7b\u578b\u8981\u76f8\u540c\uff1b<\/p>\n<p>\u5176\u63d0\u4f9b\u7684\u64cd\u4f5c\u5305\u62ec\uff1a<\/p>\n<ul>\n<li>\u9ed8\u8ba4\u521d\u59cb\u5316<\/li>\n<li>\u5217\u8868\u521d\u59cb\u5316<\/li>\n<li>\u62f7\u8d1d\u5bf9\u8c61<\/li>\n<li>size<\/li>\n<li>begin<\/li>\n<li>end<\/li>\n<\/ul>\n<h3 id=\"\u5217\u8868\u521d\u59cb\u5316\u8fd4\u56de\u503c\"><a name=\"t28\"><\/a>5.2 \u5217\u8868\u521d\u59cb\u5316\u8fd4\u56de\u503c<\/h3>\n<p>\u51fd\u6570\u53ef\u4ee5\u8fd4\u56de\u82b1\u62ec\u53f7\u5305\u56f4\u7684\u503c\u7684\u5217\u8868\uff0c\u5982\u679c\u5217\u8868\u4e3a\u7a7a\uff0c\u4e34\u65f6\u91cf\u6267\u884c\u521d\u59cb\u5316\uff0c\u5426\u5219\uff0c\u8fd4\u56de\u7684\u503c\u7531\u51fd\u6570\u7684\u8fd4\u56de\u7c7b\u578b\u51b3\u5b9a\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-built_in\">string<\/span>&gt; getAddress(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> num) {\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">if<\/span><\/span> (num == <span class=\"dv\">0<\/span>) {\r\n        <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> {};\r\n    }\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> {<span class=\"st\"><span class=\"hljs-string\">\"address1\"<\/span><\/span>, <span class=\"st\"><span class=\"hljs-string\">\"address2\"<\/span><\/span>, <span class=\"st\"><span class=\"hljs-string\">\"address3\"<\/span><\/span>};\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"\u5b9a\u4e49\u5c3e\u7f6e\u8fd4\u56de\u7c7b\u578b\"><a name=\"t29\"><\/a>5.3 \u5b9a\u4e49\u5c3e\u7f6e\u8fd4\u56de\u7c7b\u578b<\/h3>\n<p>\u4efb\u4f55\u51fd\u6570\u7684\u5b9a\u4e49\u90fd\u80fd\u591f\u4f7f\u7528\u5c3e\u7f6e\u6765\u8fd4\u56de\uff0c\u6700\u9002\u7528\u4e8e\u8fd4\u56de\u7c7b\u578b\u6bd4\u8f83\u590d\u6742\u7684\u60c5\u51b5\uff1b<\/p>\n<p>\u6bd4\u5982\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"co\"><span class=\"hljs-comment\">\/\/ \u8fd4\u56de\u7c7b\u578b\u4e3a\u6307\u9488\uff0c\u8be5\u6307\u9488\u6307\u5411\u542b\u670910\u4e2a\u6574\u6570\u7684\u6570\u7ec4<\/span><\/span>\r\n<span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">auto<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">func<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\"> i)<\/span> -&gt; <\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-title\">int<\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\">(*)<\/span>[<\/span><span class=\"dv\">10<\/span><span class=\"hljs-function\">] <\/span>{\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> arr[<span class=\"dv\">10<\/span>] = {<span class=\"dv\">0<\/span>};\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> &amp;arr;\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"\u4f7f\u7528decltype\u7b80\u5316\u8fd4\u56de\u7c7b\u578b\u5b9a\u4e49\"><a name=\"t30\"><\/a>5.4 \u4f7f\u7528decltype\u7b80\u5316\u8fd4\u56de\u7c7b\u578b\u5b9a\u4e49<\/h3>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> odd[] = {<span class=\"dv\">1<\/span>, <span class=\"dv\">3<\/span>, <span class=\"dv\">5<\/span>, <span class=\"dv\">7<\/span>, <span class=\"dv\">9<\/span>};\r\n<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> even[] = {<span class=\"dv\">2<\/span>, <span class=\"dv\">4<\/span>, <span class=\"dv\">6<\/span>, <span class=\"dv\">8<\/span>, <span class=\"dv\">10<\/span>};\r\n\r\n<span class=\"co\"><span class=\"hljs-comment\">\/\/ \u8fd4\u56de\u4e00\u4e2a\u6307\u9488\uff0c\u6307\u5411\u6570\u7ec4<\/span><\/span>\r\n<span class=\"kw\"><span class=\"hljs-keyword\">decltype<\/span><\/span>(odd) *getArr(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i) {\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> (i % <span class=\"dv\">2<\/span>) ? &amp;odd : &amp;even;\r\n}<\/code><\/pre>\n<\/div>\n<p>decltype\u5e76\u4e0d\u4f1a\u56e0\u4e3a\u83b7\u53d6\u7684\u662f\u6570\u7ec4\uff0c\u5219\u8fd4\u56de\u7684\u662f\u6307\u9488\uff0c\u8fd8\u662f\u9700\u8981\u5728\u51fd\u6570\u540d\u524d\u9762\u52a0\u4e0a\u00a0<code>*<\/code>\uff1b<\/p>\n<h3 id=\"constexpr\u51fd\u6570\"><a name=\"t31\"><\/a>5.5 constexpr\u51fd\u6570<\/h3>\n<p>\u662f\u6307\u80fd\u7528\u4e8e\u5e38\u91cf\u8868\u8fbe\u5f0f\u7684\u51fd\u6570\uff1b<\/p>\n<p>\u9700\u8981\u9075\u4ece\u51e0\u9879\u7ea6\u5b9a\uff1a<\/p>\n<ul>\n<li>\u51fd\u6570\u7684\u8fd4\u56de\u7c7b\u578b\u4ee5\u53ca\u6240\u6709\u5f62\u53c2\u7684\u7c7b\u578b\u90fd\u662f\u5b57\u9762\u503c\u7c7b\u578b\uff08\u53ea\u80fd\u7528\u5b83\u7684\u503c\u6765\u79f0\u547c\u5b83\uff09\uff1b<\/li>\n<li>\u51fd\u6570\u4f53\u4e2d\u5fc5\u987b\u6709\u4e14\u53ea\u6709\u4e00\u6761return\u8bed\u53e5\uff08C++14\u4e0d\u518d\u505a\u8981\u6c42\uff09\uff1b<\/li>\n<li>\u5fc5\u987b\u975evirtual<\/li>\n<\/ul>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">constexpr<\/span><\/span><\/span> <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">func2<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">10<\/span>;\r\n}\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> arr[func2() + <span class=\"dv\">10<\/span>] = {<span class=\"dv\">0<\/span>};\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<h2 id=\"\u7c7b\"><a name=\"t32\"><\/a>6 \u7c7b<\/h2>\n<h3 id=\"\u4f7f\u7528default\u751f\u6210\u9ed8\u8ba4\u6784\u9020\u51fd\u6570\"><a name=\"t33\"><\/a>6.1 \u4f7f\u7528=default\u751f\u6210\u9ed8\u8ba4\u6784\u9020\u51fd\u6570<\/h3>\n<p>\u5982\u679c\u5b9e\u73b0\u4e86\u9ed8\u8ba4\u7684\u6784\u9020\u51fd\u6570\uff0c\u7f16\u8bd1\u5668\u5219\u4e0d\u4f1a\u81ea\u52a8\u751f\u6210\u9ed8\u8ba4\u7248\u672c\uff1b\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528\u5173\u952e\u5b57\u00a0<code>default<\/code>\u00a0\u6765\u63a7\u5236\u9ed8\u8ba4\u6784\u9020\u51fd\u6570\u7684\u751f\u6210\uff0c\u663e\u793a\u7684\u6307\u793a\u7f16\u8bd1\u5668\u751f\u6210\u8be5\u51fd\u6570\u7684\u9ed8\u8ba4\u7248\u672c\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> MyClass{\r\n<span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:\r\n    MyClass()=<span class=\"kw\"><span class=\"hljs-keyword\">default<\/span><\/span>;  <span class=\"co\"><span class=\"hljs-comment\">\/\/\u540c\u65f6\u63d0\u4f9b\u9ed8\u8ba4\u7248\u672c\u548c\u5e26\u53c2\u7248\u672c<\/span><\/span>\r\n    MyClass(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i):data(i){}\r\n<span class=\"kw\"><span class=\"hljs-keyword\">private<\/span><\/span>:\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> data;\r\n};<\/code><\/pre>\n<\/div>\n<p>\u6bd4\u5982\u8bf4\u5982\u679c\u60f3\u8981\u7981\u6b62\u4f7f\u7528\u62f7\u8d1d\u6784\u9020\u51fd\u6570\uff0c\u5219\u4f7f\u7528\u5173\u952e\u5b57\u00a0<code>delete<\/code>\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> MyClass\r\n{\r\n<span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:\r\n    MyClass()=<span class=\"kw\"><span class=\"hljs-keyword\">default<\/span><\/span>;\r\n    MyClass(<span class=\"dt\"><span class=\"hljs-keyword\">const<\/span><\/span> MyClass&amp; )=<span class=\"kw\"><span class=\"hljs-keyword\">delete<\/span><\/span>;\r\n};\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    MyClass my;\r\n    <span class=\"hljs-function\">MyClass <span class=\"hljs-title\">my2<\/span><span class=\"hljs-params\">(my)<\/span><\/span>; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u62a5\u9519<\/span><\/span>\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<p>\u4f46\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6790\u6784\u51fd\u6570\u662f\u4e0d\u5141\u8bb8\u4f7f\u7528delete\u7684\uff0c\u5426\u5219\u65e0\u6cd5\u5220\u9664\uff1b<\/p>\n<h3 id=\"\u7c7b\u5bf9\u8c61\u6210\u5458\u7684\u7c7b\u5185\u521d\u59cb\u5316\"><a name=\"t34\"><\/a>6.2 \u7c7b\u5bf9\u8c61\u6210\u5458\u7684\u7c7b\u5185\u521d\u59cb\u5316<\/h3>\n<blockquote><p>\u5f53\u63d0\u4f9b\u4e00\u4e2a\u7c7b\u5185\u521d\u59cb\u503c\u65f6\uff0c\u5fc5\u987b\u4ee5\u7b26\u53f7\uff1d\u6216\u8005\u82b1\u62ec\u53f7\u8868\u793a<\/p><\/blockquote>\n<h3 id=\"\u59d4\u6258\u6784\u9020\u51fd\u6570\"><a name=\"t35\"><\/a>6.3 \u59d4\u6258\u6784\u9020\u51fd\u6570<\/h3>\n<p>\u4e00\u4e2a\u59d4\u6258\u6784\u9020\u51fd\u6570\u4f7f\u7528\u5b83\u6240\u5c5e\u7c7b\u7684\u5176\u5b83\u6784\u9020\u51fd\u6570\u6267\u884c\u5b83\u81ea\u5df1\u7684\u521d\u59cb\u5316\u8fc7\u7a0b\uff0c\u6216\u8005\u8bf4\u5b83\u628a\u5b83\u81ea\u5df1\u7684\u4e00\u4e9b\uff08\u6216\u8005\u5168\u90e8\uff09\u6307\u8d23\u59d4\u6258\u7ed9\u4e86\u5176\u5b83\u6784\u9020\u51fd\u6570\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> MyClass\r\n{\r\n<span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:\r\n    MyClass() : MyClass(<span class=\"dv\">10<\/span>) {}\r\n    MyClass(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> d) : data(d){}\r\n\r\n    <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">inline<\/span><\/span><\/span> <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">getData<\/span><span class=\"hljs-params\">()<\/span> <\/span>{<span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> data;}\r\n<span class=\"kw\"><span class=\"hljs-keyword\">private<\/span><\/span>:\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> data;\r\n};\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    MyClass my;\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; my.getData() &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"constexpr\u6784\u9020\u51fd\u6570\"><a name=\"t36\"><\/a>6.4 constexpr\u6784\u9020\u51fd\u6570<\/h3>\n<p>\u5982\u679c\u60f3\u8981\u4f7f\u5f97\u51fd\u6570\u62e5\u6709\u7f16\u8bd1\u65f6\u8ba1\u7b97\u7684\u80fd\u529b\uff0c\u5219\u4f7f\u7528\u5173\u952e\u5b57\u00a0<code>constexpr<\/code><\/p>\n<p>\u540c\u6837\u7684\u7f16\u8bd1\u65f6\u4f7f\u7528\u5bf9\u8c61\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> Square {\r\n<span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:\r\n    <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">constexpr<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">Square<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\"> e)<\/span> : <span class=\"hljs-title\">edge<\/span><span class=\"hljs-params\">(e)<\/span><\/span>{};\r\n    <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">constexpr<\/span><\/span><\/span> <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">getArea<\/span><span class=\"hljs-params\">()<\/span> <\/span>{<span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> edge * edge;}\r\n<span class=\"kw\"><span class=\"hljs-keyword\">private<\/span><\/span>:\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> edge;\r\n};\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"hljs-function\">Square <span class=\"hljs-title\">s<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dv\">10<\/span><span class=\"hljs-function\">)<\/span>;\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; s.getArea() &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<p>\u5982\u679c\u6210\u5458\u51fd\u6570\u6807\u8bb0\u4e3a\u00a0<code>constexpr<\/code>\uff0c\u5219\u9ed8\u8ba4\u5176\u662f\u5185\u8054\u51fd\u6570\uff0c\u5982\u679c\u53d8\u91cf\u58f0\u660e\u4e3a<br \/>\n<code>constexpr<\/code>\uff0c\u5219\u9ed8\u8ba4\u5176\u662f\u00a0<code>const<\/code>\uff1b<\/p>\n<blockquote><p>\u53c2\u8003\u6587\u7ae0<\/p><\/blockquote>\n<blockquote><p><a href=\"http:\/\/zh.cppreference.com\/w\/cpp\/language\/constexpr\" target=\"_blank\" rel=\"noopener\">constexpr\u6307\u5b9a\u7b26(C++11 \u8d77)<\/a><\/p><\/blockquote>\n<h2 id=\"io\u5e93\"><a name=\"t37\"><\/a>7 IO\u5e93<\/h2>\n<h3 id=\"\u7528string\u5bf9\u8c61\u5904\u7406\u6587\u4ef6\u540d\"><a name=\"t38\"><\/a>7.1 \u7528string\u5bf9\u8c61\u5904\u7406\u6587\u4ef6\u540d<\/h3>\n<p>\u65b0\u7248\u672c\u4e2d\u589e\u52a0\u4e86\u4f7f\u7528\u5e93\u7c7b\u578bstring\u5bf9\u8c61\u4f5c\u4e3a\u6587\u4ef6\u540d\uff0c\u4e4b\u524d\u53ea\u80fd\u4f7f\u7528C\u98ce\u683c\u7684\u5b57\u7b26\u6570\u7ec4\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"hljs-function\">ifstream <span class=\"hljs-title\">infile<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"st\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-string\">\"\/hello.sh\"<\/span><\/span><\/span><\/span><span class=\"hljs-function\">)<\/span>;<\/code><\/pre>\n<\/div>\n<h2 id=\"\u987a\u5e8f\u5bb9\u5668\"><a name=\"t39\"><\/a>8 \u987a\u5e8f\u5bb9\u5668<\/h2>\n<p>\u8865\u5145\uff1a<\/p>\n<p>\u987a\u5e8f\u5bb9\u5668\u7684\u7c7b\u578b\uff1a<\/p>\n<table>\n<thead>\n<tr class=\"header\">\n<th>\u5bb9\u5668<\/th>\n<th>\u63cf\u8ff0<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td>vector<\/td>\n<td>\u53ef\u53d8\u5927\u5c0f\u6570\u7ec4\u3002\u652f\u6301\u5feb\u901f\u968f\u673a\u8bbf\u95ee\u3002\u5728\u5c3e\u90e8\u4e4b\u5916\u7684\u4f4d\u7f6e\u63d2\u5165\u6216\u8005\u5220\u9664\u5143\u7d20\u65f6\u53ef\u80fd\u5f88\u6162<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>deque<\/td>\n<td>\u53cc\u7aef\u961f\u5217\u3002\u652f\u6301\u5feb\u901f\u968f\u673a\u8bbf\u95ee\u3002\u5728\u5934\u5c3e\u4f4d\u7f6e\u63d2\u5165\uff0f\u5220\u9664\u901f\u5ea6\u5f88\u5feb<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>list<\/td>\n<td>\u53cc\u5411\u94fe\u8868\u3002\u53ea\u652f\u6301\u53cc\u5411\u53cc\u5411\u987a\u5e8f\u8bbf\u95ee\u3002\u5728list\u4e2d\u4efb\u4f55\u4f4d\u7f6e\u8fdb\u884c\u63d2\u5165\uff0f\u5220\u9664\u64cd\u4f5c<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>forward_list<\/td>\n<td>\u5355\u5411\u94fe\u8868\u3002\u53ea\u652f\u6301\u5355\u5411\u987a\u5e8f\u8bbf\u95ee\u3002\u5728\u94fe\u8868\u4efb\u4f55\u4f4d\u7f6e\u8fdb\u884c\u63d2\u5165\uff0f\u5220\u9664\u64cd\u4f5c\u90fd\u5f88\u5feb<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>array<\/td>\n<td>\u56fa\u5b9a\u5927\u5c0f\u6570\u7ec4\u3002\u652f\u6301\u5feb\u901f\u968f\u5373\u8bbf\u95ee\u3002\u4e0d\u80fd\u6dfb\u52a0\u6216\u5220\u9664\u5143\u7d20<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>string<\/td>\n<td>\u4e0evector\u76f8\u4f3c\u7684\u5bb9\u5668\uff0c\u4f46\u4e13\u95e8\u7528\u4e8e\u4fdd\u5b58\u5b57\u7b26\uff08\u5b57\u7b26\u6570\u7ec4\uff0c\u5c01\u88c5\u4e86char\u800c\u5df2\uff09\u3002\u968f\u673a\u8bbf\u95ee\u901f\u5ea6\u5feb\uff0c\u5728\u5c3e\u90e8\u63d2\u5165\u3001\u5220\u9664\u901f\u5ea6\u5feb<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u603b\u800c\u8a00\u4e4b\uff0c\u6570\u7ec4\u968f\u673a\u8bbf\u95ee\u901f\u5ea6\u5feb\uff0c\u94fe\u8868\u63d2\u5165\u5220\u9664\u901f\u5ea6\u5feb\uff1b<\/p>\n<h3 id=\"array\u548cforward_list\u5bb9\u5668\"><a name=\"t40\"><\/a>8.1 array\u548cforward_list\u5bb9\u5668<\/h3>\n<ul>\n<li>array\n<pre><code class=\"hljs cpp\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;string&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iterator&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iostream&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;algorithm&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;array&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span>\r\n<\/span>{\r\n    <span class=\"hljs-comment\">\/\/ \u4f7f\u7528\u805a\u5408\u521d\u59cb\u5316\u6765\u6784\u9020<\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">array<\/span>&lt;<span class=\"hljs-keyword\">int<\/span>, 3&gt; a1{ {<span class=\"hljs-number\">1<\/span>,<span class=\"hljs-number\">2<\/span>,<span class=\"hljs-number\">3<\/span>} };    <span class=\"hljs-comment\">\/\/ C++11\u4e2d\u9700\u8981\u4f7f\u7528\u53cc\u91cd\u82b1\u62ec\u53f7\uff08\u800c14\u4e2d\u4e0d\u9700\u8981\uff09<\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">array<\/span>&lt;<span class=\"hljs-keyword\">int<\/span>, 3&gt; a2 = {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>}; <span class=\"hljs-comment\">\/\/ \u4e0d\u518d\u9700\u8981\u7b49\u53f7\u4e86<\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">array<\/span>&lt;<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">string<\/span>, 2&gt; a3 = { {<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">string<\/span>(<span class=\"hljs-string\">\"a\"<\/span>), <span class=\"hljs-string\">\"b\"<\/span>} };\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u652f\u6301\u57fa\u672c\u7684\u5bb9\u5668\u64cd\u4f5c<\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::sort(a1.begin(), a1.end());\r\n    <span class=\"hljs-built_in\">std<\/span>::reverse_copy(a2.begin(), a2.end(), <span class=\"hljs-built_in\">std<\/span>::ostream_iterator&lt;<span class=\"hljs-keyword\">int<\/span>&gt;(<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span>, <span class=\"hljs-string\">\" \"<\/span>));\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u652f\u6301\u8303\u56f4for<\/span>\r\n    <span class=\"hljs-keyword\">for<\/span>(<span class=\"hljs-keyword\">auto<\/span>&amp; s: a3)\r\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; s &lt;&lt; <span class=\"hljs-string\">' '<\/span>;\r\n}\r\n<\/code><\/pre>\n<\/li>\n<li>forward_list\n<p>\u548c\u00a0<code>list<\/code>\u00a0\u7684\u4f7f\u7528\u7c7b\u4f3c\uff0c\u5c31\u4e0d\u8d34\u4ee3\u7801\u4e86\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span> &lt; <span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> T, <span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> Alloc = allocator&lt;T&gt; &gt; <span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> forward_list;<\/code><\/pre>\n<\/div>\n<p>Alloc\uff0c\u5bb9\u5668\u5185\u90e8\u7528\u6765\u7ba1\u7406\u5185\u5b58\u5206\u914d\u4ee5\u53ca\u91ca\u653e\u7684\u5185\u5b58\u5206\u914d\u5668\u7684\u7c7b\u578b\uff0c\u9ed8\u8ba4\u4f7f\u7528\u7684\u662f\u00a0<code>std::allocator&lt;T&gt;<\/code>\uff0c\uff1b<\/li>\n<\/ul>\n<blockquote><p>\u53c2\u8003\u6587\u7ae0<\/p><\/blockquote>\n<blockquote><p><a href=\"http:\/\/zh.cppreference.com\/w\/cpp\/container\/array\" target=\"_blank\" rel=\"noopener\">std::array<\/a><\/p><\/blockquote>\n<blockquote><p><a href=\"http:\/\/zh.cppreference.com\/w\/cpp\/container\/forward_list\" target=\"_blank\" rel=\"noopener\">std::forward_list<\/a><\/p><\/blockquote>\n<h3 id=\"\u5bb9\u5668\u7684cbegin\u548ccend\u51fd\u6570\"><a name=\"t41\"><\/a>8.2 \u5bb9\u5668\u7684cbegin\u548ccend\u51fd\u6570<\/h3>\n<p>\u8fd4\u56de\u7684\u662fconst\u7684\u8fed\u4ee3\u5668\uff0c\u5f53\u4e0d\u9700\u8981\u5199\u8bbf\u95ee\u65f6\uff0c\u5e94\u4f7f\u7528cbegin\u548ccend\uff1b<\/p>\n<h3 id=\"\u5bb9\u5668\u7684\u5217\u8868\u521d\u59cb\u5316\"><a name=\"t42\"><\/a>8.3 \u5bb9\u5668\u7684\u5217\u8868\u521d\u59cb\u5316<\/h3>\n<h3 id=\"\u5bb9\u5668\u7684\u975e\u6210\u5458\u51fd\u6570swap\"><a name=\"t43\"><\/a>8.4 \u5bb9\u5668\u7684\u975e\u6210\u5458\u51fd\u6570swap<\/h3>\n<p>\u9664\u4e86\u00a0<code>array<\/code>\u00a0\u5916\uff0cswap\u4e0d\u5bf9\u4efb\u4f55\u5143\u7d20\u8fdb\u884c\u62f7\u8d1d\u3001\u5220\u9664\u6216\u8005\u63d2\u5165\u64cd\u4f5c\uff0c\u56e0\u6b64\u53ef\u4ee5\u4fdd\u8bc1\u5e38\u6570\u65f6\u95f4\u5185\u5b8c\u6210\uff1bswap \u53ea\u662f\u4ea4\u6362\u4e86\u5bb9\u5668\u5185\u90e8\u6570\u636e\u7ed3\u6784\uff0c\u4e0d\u4f1a\u4ea4\u6362\u5143\u7d20\uff0c\u56e0\u6b64\uff0c\u9664<code>string<\/code>\u00a0\u5916\uff0c\u6307\u5411\u5bb9\u5668\u7684\u8fed\u4ee3\u5668\u3001\u5f15\u7528\u548c\u6307\u9488\u5728 swap \u64cd\u4f5c\u540e\u90fd\u4e0d\u4f1a\u5931\u6548\uff1b<\/p>\n<p>\u4f46\u662f\uff0carray\u4f1a\u771f\u6b63\u7684\u4ea4\u6362\u5b83\u4eec\u7684\u5143\u7d20\u3002<\/p>\n<h3 id=\"\u5bb9\u5668insert\u6210\u5458\u7684\u8fd4\u56de\u7c7b\u578b\"><a name=\"t44\"><\/a>8.5 \u5bb9\u5668insert\u6210\u5458\u7684\u8fd4\u56de\u7c7b\u578b<\/h3>\n<p>\u5728\u65b0\u6807\u51c6\u4e0b\uff0c\u63a5\u53d7\u5143\u7d20\u4e2a\u6570\u6216\u8303\u56f4\u7684insert\u7248\u672c\u8fd4\u56de\u7684\u662f\uff0d\u6307\u5411\u7b2c\u4e00\u4e2a\u65b0\u52a0\u5165\u5143\u7d20\u7684\u8fed\u4ee3\u5668\uff1b<\/p>\n<p>\u5982\u679c\u8303\u56f4\u4e3a\u7a7a\uff0c\u4e0d\u63d2\u5165\u4efb\u4f55\u5143\u7d20\uff0c<code>insert<\/code>\u00a0\u64cd\u4f5c\u4f1a\u5c06\u7b2c\u4e00\u4e2a\u53c2\u6570\u8fd4\u56de\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"hljs-built_in\">list<\/span>&lt;<span class=\"hljs-built_in\">string<\/span>&gt; lst;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> itr = lst.begin();\r\n    <span class=\"hljs-built_in\">string<\/span> word;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">while<\/span><\/span> (<span class=\"hljs-built_in\">cin<\/span> &gt;&gt; word) {\r\n        itr = lst.insert(itr, word); <span class=\"co\"><span class=\"hljs-comment\">\/\/\u7b49\u4ef7\u4e8epush_front<\/span><\/span>\r\n    }\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"\u5bb9\u5668\u7684emplace\u6210\u5458\"><a name=\"t45\"><\/a>8.6 \u5bb9\u5668\u7684emplace\u6210\u5458<\/h3>\n<p>\u5f53\u8c03\u7528\u00a0<code>push<\/code>\u00a0\u6216\u00a0<code>insert<\/code>\u00a0\u6210\u5458\u51fd\u6570\u65f6\uff0c\u6211\u4eec\u5c06\u5143\u7d20\u7c7b\u578b\u7684\u5bf9\u8c61\u4f20\u9012\u7ed9\u5b83\u4eec\uff0c\u8fd9\u4e9b\u5bf9\u8c61\u88ab\u62f7\u8d1d\u5230\u5bb9\u5668\u91cc\u9762\uff0c\u4f46\u662f\uff0c\u5f53\u6211\u4eec\u8c03\u7528\u4e00\u4e2a\u00a0<code>emplace<\/code>\u00a0\u6210\u5458\u51fd\u6570\u65f6\uff0c\u5219\u662f\u5c06\u51fd\u6570\u4f20\u9012\u7ed9\u5143\u7d20\u7c7b\u578b\u7684\u6784\u9020\u51fd\u6570\uff0c\u4f1a\u4f7f\u7528\u8fd9\u4e9b\u53c2\u6570\u5728\u5bb9\u5668\u7ba1\u7406\u7684\u5185\u5b58\u4e2d\u76f4\u63a5\u6784\u9020\u5143\u7d20\uff1b\u5305\u62ec\u4e09\u4e2a\u51fd\u6570\uff1a<code>emplace_front<\/code>\uff0c<code>emplace<\/code>\uff0c<code>emplace_back<\/code>\uff0c\u5206\u522b\u5bf9\u5e94\u7740\u00a0<code>push_front<\/code>\uff0c<code>insert<\/code>\uff0c<code>push_back<\/code>\u00a0\u4e3a\u5934\u90e8\uff0c\u6307\u5b9a\u4f4d\u7f6e\uff0c\u5c3e\u90e8\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> MyClass\r\n{\r\n<span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:\r\n    MyClass(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> d) : data(d){}\r\n\r\n    <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">inline<\/span><\/span><\/span> <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">getData<\/span><span class=\"hljs-params\">()<\/span> <\/span>{<span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> data;}\r\n<span class=\"kw\"><span class=\"hljs-keyword\">private<\/span><\/span>:\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> data;\r\n};\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"hljs-built_in\">vector<\/span>&lt;MyClass&gt; mys;\r\n    mys.emplace_back(<span class=\"dv\">10<\/span>);\r\n    mys.push_back(MyClass(<span class=\"dv\">20<\/span>));\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">for<\/span><\/span> (<span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> itr = mys.begin(); itr != mys.end(); itr++) {\r\n        <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; (*itr).getData() &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    }\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"shrink_to_fit\"><a name=\"t46\"><\/a>8.7 shrink_to_fit<\/h3>\n<p>\u8c03\u7528\u8be5\u51fd\u6570\u8981\u6c42\u00a0<code>deque<\/code>\uff0c<code>vector<\/code>\uff0c<code>string<\/code>\u00a0\u9000\u56de\u4e0d\u9700\u8981\u7684\u5185\u5b58\u7a7a\u95f4\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n\r\n    <span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>&gt; nums;\r\n    nums.push_back(<span class=\"dv\">10<\/span>);\r\n    nums.push_back(<span class=\"dv\">10<\/span>);\r\n    nums.push_back(<span class=\"dv\">10<\/span>);\r\n    nums.push_back(<span class=\"dv\">10<\/span>);\r\n    nums.push_back(<span class=\"dv\">10<\/span>);\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; nums.capacity() &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    nums.shrink_to_fit();\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; nums.capacity() &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<p>\u8fd4\u56de\u7ed3\u679c\u4e3a8\uff0c5<\/p>\n<p>\u533a\u522b\uff1a<\/p>\n<ul>\n<li>reserve\uff1a\u9884\u5206\u914d\u5b58\u50a8\u533a\u5927\u5c0f\uff0c\u5373capacity\u7684\u503c<\/li>\n<li>resize\uff1a\u5bb9\u5668\u5927\u5c0f\uff0c\u5373size\u7684\u503c<\/li>\n<\/ul>\n<h3 id=\"string\u7684\u6570\u503c\u8f6c\u6362\u51fd\u6570\"><a name=\"t47\"><\/a>8.9 string\u7684\u6570\u503c\u8f6c\u6362\u51fd\u6570<\/h3>\n<p>\u65b0\u6807\u51c6\u4e2d\uff0c\u5f15\u5165\u591a\u4e2a\u51fd\u6570\u5b9e\u73b0\u6570\u503c\u6570\u636e\u548c\u6807\u51c6\u5e93string\u4e4b\u95f4\u7684\u8f6c\u6362\uff1a<\/p>\n<table>\n<thead>\n<tr class=\"header\">\n<th>\u51fd\u6570<\/th>\n<th>\u63cf\u8ff0<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td>to_string(val)<\/td>\n<td>\u8fd4\u56de\u4efb\u610f\u7b97\u672f\u7c7b\u578bval\u7684\u5b57\u7b26\u4e32<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>stoi(s, p, b)<\/td>\n<td>int\u7c7b\u578b<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>stol(s, p, b)<\/td>\n<td>long\u7c7b\u578b<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>stoul(s, p, b)<\/td>\n<td>unsigned long\u7c7b\u578b<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>stoll(s, p, b)<\/td>\n<td>long long\u7c7b\u578b<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>stoull(s, p, b)<\/td>\n<td>unsigned long long\u7c7b\u578b<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>stof(s, p, b)<\/td>\n<td>float\u7c7b\u578b<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>stod(s, p, b)<\/td>\n<td>double\u7c7b\u578b<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>stold(s, p, b)<\/td>\n<td>long double\u7c7b\u578b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"\u6cdb\u578b\u7b97\u6cd5\"><a name=\"t48\"><\/a>9 \u6cdb\u578b\u7b97\u6cd5<\/h2>\n<h3 id=\"lambda\u8868\u8fbe\u5f0f\"><a name=\"t49\"><\/a>9.1 lambda\u8868\u8fbe\u5f0f<\/h3>\n<p>\u4e00\u4e2alambda\u5177\u6709\u4e00\u4e2a\u8fd4\u56de\u7c7b\u578b\u3001\u4e00\u4e2a\u53c2\u6570\u5217\u8868\u548c\u4e00\u4e2a\u51fd\u6570\u4f53\uff1b<\/p>\n<pre><code class=\"hljs markdown\">[<span class=\"hljs-string\">capture list<\/span>](<span class=\"hljs-link\">parameter list<\/span>) -&gt; return type { function body }\r\n<\/code><\/pre>\n<h3 id=\"lambda\u8868\u8fbe\u5f0f\u4e2d\u7684\u5c3e\u7f6e\u8fd4\u56de\u7c7b\u578b\"><a name=\"t50\"><\/a>9.2 lambda\u8868\u8fbe\u5f0f\u4e2d\u7684\u5c3e\u7f6e\u8fd4\u56de\u7c7b\u578b<\/h3>\n<h3 id=\"\u6807\u51c6\u5e93bind\u51fd\u6570\"><a name=\"t51\"><\/a>9.3 \u6807\u51c6\u5e93bind\u51fd\u6570<\/h3>\n<pre><code class=\"hljs lisp\">auto newCallable = bind(<span class=\"hljs-name\">callable<\/span>, arg_list)<span class=\"hljs-comment\">;<\/span>\r\n<\/code><\/pre>\n<p>\u4f8b\u5b50\uff08\u7ed1\u5b9a\u7c7b\u6210\u5458\u51fd\u6570\uff09<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\">\r\n<span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iostream&gt;<\/span><\/span><\/span>\r\n<span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;functional&gt;<\/span><\/span><\/span>\r\n<span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> <span class=\"kw\"><span class=\"hljs-keyword\">namespace<\/span><\/span> <span class=\"hljs-built_in\">std<\/span>;\r\n<span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> <span class=\"kw\"><span class=\"hljs-keyword\">namespace<\/span><\/span> <span class=\"hljs-built_in\">std<\/span>::placeholders;\r\n<span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> MyClass\r\n{\r\n<span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:\r\n    <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">fun1<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">void<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\">)<\/span>\r\n    <\/span>{\r\n        <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"void fun1(void)\"<\/span><\/span> &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    }\r\n    <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">fun2<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\"> i)<\/span>\r\n    <\/span>{\r\n        <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"int fun2(int i)\"<\/span><\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\" i = \"<\/span><\/span> &lt;&lt; i &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n        <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> i;\r\n    }\r\n};\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span>\r\n<\/span>{\r\n    MyClass my;\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/\u4f7f\u7528\u7c7b\u5bf9\u8c61\u7ed1\u5b9a<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> fun1 = bind(&amp;MyClass::fun1, my);\r\n    fun1();\r\n    MyClass *p;\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/\u4f7f\u7528\u7c7b\u6307\u9488\u7ed1\u5b9a\uff0c-1\u4e3a\u5360\u4f4d\u7b26<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> fun2 = bind(&amp;MyClass::fun2, p, _1);\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i = fun2(<span class=\"dv\">1<\/span>);\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"i = \"<\/span><\/span> &lt;&lt; i &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    <span class=\"hljs-built_in\">cin<\/span>.get();\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<h2 id=\"\u5173\u8054\u5bb9\u5668\"><a name=\"t52\"><\/a>10. \u5173\u8054\u5bb9\u5668<\/h2>\n<p>\u5173\u8054\u5668\u7c7b\u578b<\/p>\n<ul>\n<li>map \u5173\u8054\u6570\u7ec4\uff0c\u4fdd\u5b58\u5173\u952e\u5b57\uff0d\u503c\u5bf9<\/li>\n<li>set \u5173\u952e\u5b57\u5373\u503c\uff0c\u5373\u53ea\u4fdd\u5b58\u5173\u952e\u5b57\u7684\u5bb9\u5668<\/li>\n<li>multimap \u5173\u952e\u5b57\u53ef\u91cd\u590d\u51fa\u73b0\u7684map<\/li>\n<li>multiset \u5173\u952e\u5b57\u53ef\u91cd\u590d\u51fa\u73b0\u7684set<\/li>\n<li>unordered_map \u7528\u54c8\u5e0c\u51fd\u6570\u7ec4\u7ec7\u7684map<\/li>\n<li>unordered_set \u7528\u54c8\u5e0c\u51fd\u6570\u7ec4\u7ec7\u7684set<\/li>\n<li>unordered_multimap \u7528\u54c8\u5e0c\u51fd\u6570\u7ec4\u7ec7\u7684map\uff0c\u5173\u952e\u5b57\u53ef\u91cd\u590d<\/li>\n<li>unordered_multiset \u7528\u54c8\u5e0c\u51fd\u6570\u7ec4\u7ec7\u7684set\uff0c\u5173\u952e\u5b57\u53ef\u91cd\u590d<\/li>\n<\/ul>\n<h3 id=\"\u5173\u8054\u5bb9\u5668\u7684\u5217\u8868\u521d\u59cb\u5316\"><a name=\"t53\"><\/a>10.1 \u5173\u8054\u5bb9\u5668\u7684\u5217\u8868\u521d\u59cb\u5316<\/h3>\n<p>\u548c\u987a\u5e8f\u5bb9\u5668\u5dee\u4e0d\u591a<\/p>\n<h3 id=\"\u5217\u8868\u521d\u59cb\u5316pair\u7684\u8fd4\u56de\u7c7b\u578b\"><a name=\"t54\"><\/a>10.2 \u5217\u8868\u521d\u59cb\u5316pair\u7684\u8fd4\u56de\u7c7b\u578b<\/h3>\n<h3 id=\"pair\u7684\u5217\u8868\u521d\u59cb\u5316\"><a name=\"t55\"><\/a>10.3 pair\u7684\u5217\u8868\u521d\u59cb\u5316<\/h3>\n<h3 id=\"\u65e0\u5e8f\u5bb9\u5668\"><a name=\"t56\"><\/a>10.4 \u65e0\u5e8f\u5bb9\u5668<\/h3>\n<p>\u5305\u62ec4\u4e2a\u65e0\u5e8f\u5173\u8054\u5bb9\u5668\uff08\u4f7f\u7528\u54c8\u5e0c\u51fd\u6570\u548c\u5173\u952e\u5b57\u7c7b\u578b\u7684 == \u8fd0\u7b97\u7b26\uff09<\/p>\n<ul>\n<li>unordered_map<\/li>\n<li>unordered_set<\/li>\n<li>unordered_multiset<\/li>\n<li>unordered_multimap<\/li>\n<\/ul>\n<h2 id=\"\u52a8\u6001\u5185\u5b58\"><a name=\"t57\"><\/a>11 \u52a8\u6001\u5185\u5b58<\/h2>\n<p>\u5df2\u603b\u7ed3\uff0c\u7565<\/p>\n<h3 id=\"\u667a\u80fd\u6307\u9488\"><a name=\"t58\"><\/a>11.1 \u667a\u80fd\u6307\u9488<\/h3>\n<h3 id=\"shared_ptr\u7c7b\"><a name=\"t59\"><\/a>11.2 shared_ptr\u7c7b<\/h3>\n<h3 id=\"\u52a8\u6001\u5206\u914d\u5bf9\u8c61\u7684\u5217\u8868\u521d\u59cb\u5316\"><a name=\"t60\"><\/a>11.3 \u52a8\u6001\u5206\u914d\u5bf9\u8c61\u7684\u5217\u8868\u521d\u59cb\u5316<\/h3>\n<h3 id=\"auto\u548c\u52a8\u6001\u5206\u914d\"><a name=\"t61\"><\/a>11.4 auto\u548c\u52a8\u6001\u5206\u914d<\/h3>\n<h3 id=\"unique_ptr\u7c7b\"><a name=\"t62\"><\/a>11.5 unique_ptr\u7c7b<\/h3>\n<h3 id=\"weak_ptr\u7c7b\"><a name=\"t63\"><\/a>11.6 weak_ptr\u7c7b<\/h3>\n<h3 id=\"\u8303\u56f4for\u8bed\u53e5\u4e0d\u80fd\u5e94\u7528\u4e8e\u52a8\u6001\u5206\u914d\u6570\u7ec4\"><a name=\"t64\"><\/a>11.7 \u8303\u56f4for\u8bed\u53e5\u4e0d\u80fd\u5e94\u7528\u4e8e\u52a8\u6001\u5206\u914d\u6570\u7ec4<\/h3>\n<p>\u56e0\u4e3a\u5206\u914d\u7684\u5185\u5b58\u5e76\u4e0d\u662f\u4e00\u4e2a\u6570\u7ec4\u7c7b\u578b<\/p>\n<h3 id=\"\u52a8\u6001\u5206\u914d\u6570\u7ec4\u7684\u5217\u8868\u521d\u59cb\u5316\"><a name=\"t65\"><\/a>11.8 \u52a8\u6001\u5206\u914d\u6570\u7ec4\u7684\u5217\u8868\u521d\u59cb\u5316<\/h3>\n<p>\u53ef\u4ee5\u5bf9\u6570\u7ec4\u4e2d\u7684\u5143\u7d20\u8fdb\u884c\u503c\u521d\u59cb\u5316\uff0c\u65b9\u6cd5\u662f\u5728\u5927\u5c0f\u4e4b\u540e\u8ddf\u4e00\u5bf9\u62ec\u53f7\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> *pia = <span class=\"kw\"><span class=\"hljs-keyword\">new<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>[<span class=\"dv\">10<\/span>]; <span class=\"co\"><span class=\"hljs-comment\">\/\/10\u4e2a\u672a\u521d\u59cb\u5316\u7684int<\/span><\/span>\r\n<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> *pia2 = <span class=\"kw\"><span class=\"hljs-keyword\">new<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>[<span class=\"dv\">10<\/span>](); <span class=\"co\"><span class=\"hljs-comment\">\/\/10\u4e2a\u521d\u59cb\u5316\u4e3a0\u7684int<\/span><\/span>\r\n<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> *pia3 = <span class=\"kw\"><span class=\"hljs-keyword\">new<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>[<span class=\"dv\">10<\/span>]{<span class=\"dv\">1<\/span>, <span class=\"dv\">2<\/span>, <span class=\"dv\">3<\/span>, <span class=\"dv\">4<\/span>, <span class=\"dv\">5<\/span>, <span class=\"dv\">6<\/span>, <span class=\"dv\">7<\/span>, <span class=\"dv\">8<\/span>, <span class=\"dv\">9<\/span>, <span class=\"dv\">10<\/span>};\r\n\r\n<span class=\"kw\"><span class=\"hljs-keyword\">delete<\/span><\/span> [] pia; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u91ca\u653e<\/span><\/span>\r\n<span class=\"kw\"><span class=\"hljs-keyword\">delete<\/span><\/span> [] pia2;\r\n<span class=\"kw\"><span class=\"hljs-keyword\">delete<\/span><\/span> [] pia3;<\/code><\/pre>\n<\/div>\n<h3 id=\"auto\u4e0d\u80fd\u7528\u4e8e\u5206\u914d\u6570\u7ec4\"><a name=\"t66\"><\/a>11.9 auto\u4e0d\u80fd\u7528\u4e8e\u5206\u914d\u6570\u7ec4<\/h3>\n<p>\u867d\u7136\u6211\u4eec\u7528\u7a7a\u62ec\u53f7\u5bf9\u6570\u7ec4\u4e2d\u5143\u7d20\u8fdb\u884c\u503c\u521d\u59cb\u5316\uff0c\u4f46\u4e0d\u80fd\u5728\u62ec\u53f7\u4e2d\u7ed9\u51fa\u521d\u59cb\u5316\u5668\uff0c\u8fd9\u610f\u5473\u7740\u4e0d\u80fd\u7528auto\u5206\u914d\u6570\u7ec4\uff1b<\/p>\n<h3 id=\"allocatorconstruct\u53ef\u4f7f\u7528\u4efb\u610f\u6784\u9020\u51fd\u6570\"><a name=\"t67\"><\/a>11.10 allocator::construct\u53ef\u4f7f\u7528\u4efb\u610f\u6784\u9020\u51fd\u6570<\/h3>\n<p>allocator\u5206\u914d\u7684\u5185\u5b58\u662f\u672a\u6784\u9020\u7684\uff0c\u6211\u4eec\u6309\u9700\u8981\u5728\u6b64\u5185\u5b58\u4e2d\u6784\u9020\u5bf9\u8c61\u3002\u5728\u65b0\u6807\u51c6\u5e93\u4e2d\uff0cconstruct\u6210\u5458\u51fd\u6570\u63a5\u53d7\u4e00\u4e2a\u6307\u9488\u548c\u96f6\u4e2a\u6216\u591a\u4e2a\u989d\u5916\u53c2\u6570\uff0c\u5728\u7ed9\u5b9a\u4f4d\u7f6e\u6784\u9020\u4e00\u4e2a\u5143\u7d20\u3002<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    allocator&lt;<span class=\"hljs-built_in\">string<\/span>&gt; alloc;\r\n    <span class=\"hljs-built_in\">string<\/span>* str = alloc.allocate(<span class=\"dv\">4<\/span>); <span class=\"co\"><span class=\"hljs-comment\">\/\/\u5206\u914d10\u4e2a\u672a\u521d\u59cb\u5316\u7684string<\/span><\/span>\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> itr = str;\r\n    alloc.construct(itr, <span class=\"st\"><span class=\"hljs-string\">\"chengdu\"<\/span><\/span>); <span class=\"co\"><span class=\"hljs-comment\">\/\/chengdu<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; str[<span class=\"dv\">0<\/span>] &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    itr++;\r\n    alloc.construct(itr, <span class=\"st\"><span class=\"hljs-string\">\"beijing\"<\/span><\/span>); <span class=\"co\"><span class=\"hljs-comment\">\/\/beijing<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; str[<span class=\"dv\">1<\/span>] &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    itr++;\r\n    alloc.construct(itr, <span class=\"dv\">10<\/span>, <span class=\"st\"><span class=\"hljs-string\">'c'<\/span><\/span>); <span class=\"co\"><span class=\"hljs-comment\">\/\/10\u4e2ac\u7ec4\u6210\u7684\u5b57\u7b26\u4e32<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; str[<span class=\"dv\">2<\/span>] &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    itr++;\r\n    alloc.construct(itr); <span class=\"co\"><span class=\"hljs-comment\">\/\/\u7a7a\u5b57\u7b26\u4e32<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; str[<span class=\"dv\">3<\/span>] &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">for<\/span><\/span> (<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i = <span class=\"dv\">0<\/span>; i &lt; <span class=\"dv\">4<\/span>; i++) {\r\n        <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; str[i] &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n    }\r\n\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u9500\u6bc1<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">while<\/span><\/span> (itr != str) {\r\n        alloc.destroy(itr--);\r\n    }\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<p>\u4e3a\u4e86\u4f7f\u7528allocate\u8fd4\u56de\u7684\u5185\u5b58\uff0c\u6211\u4eec\u5fc5\u987b\u7528construct\u6784\u9020\u5bf9\u8c61\uff0c\u4f7f\u7528\u672a\u6784\u9020\u7684\u5185\u5b58\uff0c\u5176\u884c\u4e3a\u662f\u672a\u5b9a\u4e49\u7684\uff1b\u6211\u4eec\u53ea\u6709\u5bf9\u771f\u6b63\u6784\u9020\u4e86\u7684\u5143\u7d20\u8fdb\u884cdestroy\u64cd\u4f5c\uff1b<\/p>\n<h2 id=\"\u62f7\u8d1d\u63a7\u5236\"><a name=\"t68\"><\/a>12 \u62f7\u8d1d\u63a7\u5236<\/h2>\n<h3 id=\"\u5c06default\u7528\u4e8e\u62f7\u8d1d\u63a7\u5236\u7c7b\u5bf9\u5bf9\u8c61\"><a name=\"t69\"><\/a>12.1 \u5c06=default\u7528\u4e8e\u62f7\u8d1d\u63a7\u5236\u7c7b\u5bf9\u5bf9\u8c61<\/h3>\n<p>\u53ef\u4ee5\u7c7b\u5185\u6216\u8005\u7c7b\u5916\u4fee\u9970\u6210\u5458\u51fd\u6570\uff0c\u5982\u679c\u662f\u7c7b\u5185\uff0c\u5408\u6210\u7684\u51fd\u6570\u5c06\u9690\u5f0f\u5730\u58f0\u660e\u672a\u5185\u8054\u7684\uff0c\u5982\u679c\u4e0d\u5e0c\u671b\u8fd9\u6837\uff0c\u5219\u5728\u7c7b\u5916\u58f0\u660e\uff1b<\/p>\n<p>\u6211\u4eec\u53ea\u80fd\u5bf9\u5177\u6709\u5408\u6210\u7248\u672c\u7684\u6210\u5458\u51fd\u6570\u4f7f\u7528=default\uff08\u5373\uff0c\u9ed8\u8ba4\u6784\u9020\u51fd\u6570\u6216\u62f7\u8d1d\u63a7\u5236\u6210\u5458\uff09<\/p>\n<h3 id=\"\u4f7f\u7528delete\u7528\u4e8e\u62f7\u8d1d\u63a7\u5236\u6210\u5458\"><a name=\"t70\"><\/a>12.2 \u4f7f\u7528=delete\u7528\u4e8e\u62f7\u8d1d\u63a7\u5236\u6210\u5458<\/h3>\n<p>\u5bf9\u4e8e\u6790\u6784\u51fd\u6570\u5df2\u5220\u9664\u7684\u7c7b\u578b\uff0c\u4e0d\u80fd\u5b9a\u4e49\u8be5\u7c7b\u578b\u7684\u53d8\u91cf\u6216\u91ca\u653e\u6307\u5411\u8be5\u7c7b\u578b\u52a8\u6001\u5206\u914d\u7684\u6307\u9488\uff1b<\/p>\n<h3 id=\"\u7528\u79fb\u52a8\u7c7b\u5bf9\u8c61\u4ee3\u66ff\u62f7\u8d1d\u7c7b\u5bf9\u8c61\"><a name=\"t71\"><\/a>12.3 \u7528\u79fb\u52a8\u7c7b\u5bf9\u8c61\u4ee3\u66ff\u62f7\u8d1d\u7c7b\u5bf9\u8c61<\/h3>\n<p>\u4e3a\u4e86\u89e3\u51b3\u4e4b\u524d\u5b58\u5728\u7684\u6027\u80fd\u95ee\u9898\uff0c\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u5185\u5b58\u62f7\u8d1d\uff0c\u65b0\u6807\u51c6\u4e2d\u6709\u4e24\u79cd\u65b9\u6cd5\u6765\u66ff\u4ee3\u62f7\u8d1d\u51fd\u6570\uff1a\u79fb\u52a8\u51fd\u6570\u548c\u00a0<code>move<\/code><\/p>\n<p>\u79fb\u52a8\u6784\u9020\u51fd\u6570<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\">A(A &amp;&amp; h) : a(h.a){\r\n    h.a = <span class=\"kw\"><span class=\"hljs-literal\">nullptr<\/span><\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"\u53f3\u503c\u5f15\u7528\"><a name=\"t72\"><\/a>12.4 \u53f3\u503c\u5f15\u7528<\/h3>\n<p>\u53f3\u503c\u5f15\u7528\u5c31\u662f\u5fc5\u987b\u7ed1\u5b9a\u5230\u53f3\u503c\u7684\u5f15\u7528\uff0c\u901a\u8fc7\u00a0<code>&amp;&amp;<\/code>\u00a0\u6765\u83b7\u5f97\u53f3\u503c\u5f15\u7528\uff1b<\/p>\n<h4 id=\"\u533a\u522b\u5de6\u503c\u548c\u53f3\u503c\">12.4.1 \u533a\u522b\u5de6\u503c\u548c\u53f3\u503c<\/h4>\n<ul>\n<li>\u5de6\u503c\uff1a\u5728\u8d4b\u503c\u53f7\u5de6\u8fb9\uff0c\u53ef\u4ee5\u88ab\u8d4b\u503c\u7684\u503c\uff0c\u53ef\u4ee5\u53d6\u5730\u5740\uff1b<\/li>\n<li>\u53f3\u503c\uff1a\u5728\u8d4b\u503c\u53f7\u53f3\u8fb9\uff0c\u53d6\u51fa\u503c\u8d4b\u7ed9\u5176\u4ed6\u53d8\u91cf\u7684\u503c\uff1b<\/li>\n<li>\u5de6\u503c\u5f15\u7528\uff1atype &amp; \u5f15\u7528\u540d = \u5de6\u503c\u8868\u8fbe\u5f0f<\/li>\n<li>\u53f3\u503c\u5f15\u7528\uff1atype &amp;&amp; \u5f15\u7528\u540d = \u53f3\u503c\u8868\u8fbe\u5f0f<\/li>\n<\/ul>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"> <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> a = <span class=\"dv\">0<\/span>; <span class=\"co\"><span class=\"hljs-comment\">\/\/2<\/span><\/span>\r\n <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> b = a; <span class=\"co\"><span class=\"hljs-comment\">\/\/1<\/span><\/span>\r\n <\/code><\/pre>\n<\/div>\n<p>\u4e00\u4e2a\u5bf9\u8c61\u88ab\u7528\u4f5c\u53f3\u503c\u65f6\uff0c\u4f7f\u7528\u7684\u662f\u5b83\u7684\u5185\u5bb9\uff08\u503c\uff09\uff0c\u6bd4\u59821\u4e2d\u7684\u00a0<code>a<\/code>\u00a0\uff0c\u88ab\u5f53\u4f5c\u5de6\u503c\u65f6\uff0c\u4f7f\u7528\u7684\u662f\u5b83\u7684\u5730\u5740\uff0c\u6bd4\u59822\u4e2d\u7684\u00a0<code>a<\/code>\uff0c\u5e38\u89c4\u5de6\u503c\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i    = <span class=\"dv\">1<\/span>;          <span class=\"co\"><span class=\"hljs-comment\">\/\/i\u4e3a\u5e38\u89c4\u5de6\u503c<\/span><\/span>\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> &amp;r   = i;          <span class=\"co\"><span class=\"hljs-comment\">\/\/\u6b63\u786e\uff1ar\u7ed1\u5b9a\u5230i\u4e0a\uff0cr\u662f\u4e00\u4e2a\u5f15\u7528<\/span><\/span>\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> &amp;&amp;rr = i;          <span class=\"co\"><span class=\"hljs-comment\">\/\/\u9519\u8bef\uff1a\u4e0d\u80fd\u5c06\u4e00\u4e2a\u53f3\u503c\u5f15\u7528\u7ed1\u5b9a\u5230\u5de6\u503ci\u4e0a<\/span><\/span>\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> &amp;r2  = i * <span class=\"dv\">1<\/span>;      <span class=\"co\"><span class=\"hljs-comment\">\/\/\u9519\u8bef\uff1a\u7b49\u53f7\u53f3\u8fb9\u662f\u4e00\u4e2a\u53f3\u503c\uff0c\u4f46\u5de6\u503c\u5f15\u7528\u53ea\u80fd\u7ed1\u5b9a\u5230\u5de6\u503c\u4e0a<\/span><\/span>\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> &amp;&amp;rr2 = i * <span class=\"dv\">1<\/span>;     <span class=\"co\"><span class=\"hljs-comment\">\/\/\u6b63\u786e\uff1a\u53f3\u503c\u5f15\u7528\u7ed1\u5b9a\u5230\u53f3\u503c\u4e0a<\/span><\/span>\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">const<\/span><\/span> <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> &amp;r3 = i * <span class=\"dv\">1<\/span>; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u6b63\u786e\uff1a\u53ef\u4ee5\u5c06\u4e00\u4e2aconst\u7684\u5de6\u503c\u5f15\u7528\u7ed1\u5b9a\u5230\u53f3\u503c\u4e0a<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u8fd4\u56de\u5de6\u503c\u5f15\u7528\u7684\u51fd\u6570\u3001\u8d4b\u503c\u3001\u4e0b\u6807\u3001\u89e3\u5f15\u7528\u548c\u524d\u7f6e\u9012\u589e\uff0f\u9012\u51cf\u8fd0\u7b97\u7b26\uff0c\u90fd\u662f\u8fd4\u56de\u5de6\u503c\u7684\u8868\u8fbe\u5f0f\u7684\u4f8b\u5b50\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u4e00\u4e2a\u5de6\u503c\u5f15\u7528\u7ed1\u5b9a\u5230\u8fd9\u7c7b\u8868\u8fbe\u5f0f\u7684\u7ed3\u679c\u4e0a\uff1b<\/li>\n<li>\u8fd4\u56de\u975e\u5f15\u7528\u7c7b\u578b\u7684\u51fd\u6570\uff0c\u8fde\u540c\u7b97\u672f\u3001\u5173\u7cfb\u3001\u4f4d\u4ee5\u53ca\u540e\u7f6e\u9012\u589e\uff0f\u9012\u51cf\u8fd0\u7b97\u7b26\uff0c\u90fd\u751f\u6210\u53f3\u503c\uff1b\u6211\u4eec\u4e0d\u80fd\u5c06\u5de6\u503c\u5f15\u7528\u7ed1\u5b9a\u5230\u8fd9\u7c7b\u8868\u8fbe\u5f0f\u4e0a\uff0c\u4f46\u662f\u6211\u4eec\u53ef\u4ee5\u5c06\u4e00\u4e2aconst\u7684\u5de6\u503c\u5f15\u7528\u6216\u8005\u4e00\u4e2a\u53f3\u503c\u5f15\u7528\u7ed1\u5b9a\u5230\u8fd9\u7c7b\u8868\u8fbe\u5f0f\u4e4b\u4e0a\uff1b<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"http:\/\/odwv9d2u8.bkt.clouddn.com\/17-4-9\/15815182-file_1491681414988_25ca.png\" alt=\"\" \/><\/p>\n<h3 id=\"\u6807\u51c6\u5e93move\u51fd\u6570\"><a name=\"t73\"><\/a>12.5 \u6807\u51c6\u5e93move\u51fd\u6570<\/h3>\n<blockquote><p>\u6211\u4eec\u53ef\u4ee5\u9500\u6bc1\u4e00\u4e2a\u79fb\u540e\u6e90\u5bf9\u8c61\uff0c\u4e5f\u53ef\u4ee5\u8d4b\u4e88\u5b83\u65b0\u503c\uff0c\u4f46\u4e0d\u80fd\u4f7f\u7528\u4e00\u4e2a\u79fb\u540e\u6e90\u5bf9\u8c61\u7684\u503c<\/p><\/blockquote>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"co\"><span class=\"hljs-comment\">\/\/ \u79fb\u52a8\u6784\u9020\u51fd\u6570\uff0c\u53c2\u6570 \"arg.member\" \u662f\u5de6\u503c<\/span><\/span>\r\nA(A&amp;&amp; arg) : member(<span class=\"hljs-built_in\">std<\/span>::move(arg.member))\r\n{\r\n} \r\n\r\n<span class=\"co\"><span class=\"hljs-comment\">\/\/ \u79fb\u52a8\u8d4b\u503c\u51fd\u6570<\/span><\/span>\r\nA&amp; <span class=\"kw\"><span class=\"hljs-keyword\">operator<\/span><\/span>=(A&amp;&amp; other) {\r\n     member = <span class=\"hljs-built_in\">std<\/span>::move(other.member);\r\n     <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> *<span class=\"kw\"><span class=\"hljs-keyword\">this<\/span><\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"\u79fb\u52a8\u6784\u9020\u51fd\u6570\u548c\u79fb\u52a8\u8d4b\u503c\"><a name=\"t74\"><\/a>12.6 \u79fb\u52a8\u6784\u9020\u51fd\u6570\u548c\u79fb\u52a8\u8d4b\u503c<\/h3>\n<h3 id=\"\u79fb\u52a8\u6784\u9020\u51fd\u6570\u901a\u5e38\u662fnoexcept\"><a name=\"t75\"><\/a>12.7 \u79fb\u52a8\u6784\u9020\u51fd\u6570\u901a\u5e38\u662fnoexcept<\/h3>\n<p>\u5982\u679c\u9700\u8981\u901a\u77e5\u6807\u51c6\u5e93\u8fd9\u662f\u4e00\u4e2a\u4e0d\u4f1a\u629b\u51fa\u5f02\u5e38\u7684\u79fb\u52a8\u64cd\u4f5c\uff0c\u53ef\u4ee5\u5728\u51fd\u6570\u540e\u9762\u6307\u660e\u00a0<code>noexcept<\/code>\uff0c\u5982\u679c\u5728\u4e00\u4e2a\u6784\u9020\u51fd\u6570\u4e2d\uff0c<code>noexcept<\/code>\u00a0\u51fa\u73b0\u5728\u53c2\u6570\u5217\u8868\u548c\u521d\u59cb\u5316\u5217\u8868\u5f00\u59cb\u7684\u5192\u53f7\u4e4b\u95f4\uff1b<\/p>\n<blockquote><p>\u4e0d\u629b\u51fa\u5f02\u5e38\u7684\u79fb\u52a8\u6784\u9020\u51fd\u6570\u548c\u79fb\u52a8\u8d4b\u503c\u8fd0\u7b97\u7b26\u5fc5\u987b\u6807\u8bb0\u4e3anoexcept<\/p><\/blockquote>\n<h3 id=\"\u79fb\u52a8\u8fed\u4ee3\u5668\"><a name=\"t76\"><\/a>12.8 \u79fb\u52a8\u8fed\u4ee3\u5668<\/h3>\n<p>\u65b0\u6807\u51c6\u4e2d\u53ef\u4ee5\u901a\u8fc7\u8c03\u7528\u6807\u51c6\u5e93\u7684\u00a0<code>make_move_iterator<\/code>\u00a0\u51fd\u6570\u5c06\u4e00\u4e2a\u666e\u901a\u8fed\u4ee3\u5668\u8f6c\u6362\u4e3a\u4e00\u4e2a\u79fb\u52a8\u8fed\u4ee3\u5668\uff0c\u8fd9\u6837\u53ef\u4ee5\u907f\u514d\u62f7\u8d1d\u64cd\u4f5c\u5e26\u6765\u7684\u6027\u80fd\u95ee\u9898\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iostream&gt;<\/span>     <\/span><\/span><span class=\"co\"><span class=\"hljs-meta\">\/\/ std::cout<\/span><\/span>\r\n<span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iterator&gt;<\/span>     <\/span><\/span><span class=\"co\"><span class=\"hljs-meta\">\/\/ std::make_move_iterator<\/span><\/span>\r\n<span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;vector&gt;<\/span>       <\/span><\/span><span class=\"co\"><span class=\"hljs-meta\">\/\/ std::vector<\/span><\/span>\r\n<span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;string&gt;<\/span>       <\/span><\/span><span class=\"co\"><span class=\"hljs-meta\">\/\/ std::string<\/span><\/span>\r\n<span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;algorithm&gt;<\/span>    <\/span><\/span><span class=\"co\"><span class=\"hljs-meta\">\/\/ std::copy<\/span><\/span>\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">string<\/span>&gt; foo(<span class=\"dv\">3<\/span>);\r\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">string<\/span>&gt; bar{ <span class=\"st\"><span class=\"hljs-string\">\"one\"<\/span><\/span>,<span class=\"st\"><span class=\"hljs-string\">\"two\"<\/span><\/span>,<span class=\"st\"><span class=\"hljs-string\">\"three\"<\/span><\/span> };\r\n\r\n    <span class=\"hljs-built_in\">std<\/span>::copy(make_move_iterator(bar.begin()),\r\n        make_move_iterator(bar.end()),\r\n        foo.begin());\r\n\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ bar now contains unspecified values; clear it:<\/span><\/span>\r\n    bar.clear();\r\n\r\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"foo:\"<\/span><\/span>;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">for<\/span><\/span> (<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">string<\/span>&amp; x : foo) <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">' '<\/span><\/span> &lt;&lt; x;\r\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">'<\/span><\/span><span class=\"ch\"><span class=\"hljs-string\">\\n<\/span><\/span><span class=\"st\"><span class=\"hljs-string\">'<\/span><\/span>;\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"\u5f15\u7528\u9650\u5b9a\u6210\u5458\u51fd\u6570\"><a name=\"t77\"><\/a>12.9 \u5f15\u7528\u9650\u5b9a\u6210\u5458\u51fd\u6570<\/h3>\n<p>\u5f15\u7528\u9650\u5b9a\u7b26\u53ef\u4ee5\u662f\u00a0<code>&amp;<\/code>\u00a0\u6216\u8005\u00a0<code>&amp;&amp;<\/code>\uff0c\u5206\u522b\u6307\u51fa\u00a0<code>this<\/code>\u00a0\u53ef\u4ee5\u6307\u5411\u4e00\u4e2a\u5de6\u503c\u6216\u8005\u53f3\u503c\uff0c\u5f15\u7528\u9650\u5b9a\u7b26\u53ea\u80fd\u7528\u4e8e\u6210\u5458\u51fd\u6570\uff0c\u800c\u4e14\u5fc5\u987b\u540c\u65f6\u51fa\u73b0\u5728\u51fd\u6570\u7684\u58f0\u660e\u548c\u5b9a\u4e49\u4e2d\uff1b<\/p>\n<p>\u53ef\u4ee5\u5728\u53c2\u6570\u5217\u8868\u4e4b\u540e\u4f7f\u7528\u5f15\u7528\u9650\u5b9a\u7b26\u6765\u6307\u5b9athis\u5bf9\u8c61\u7684\u5de6\u503c\u4e0e\u53f3\u503c\u5c5e\u6027;<\/p>\n<ul>\n<li>\u82e5\u5f15\u7528\u9650\u5b9a\u7b26\u4e3a&amp;,\u5219\u8868\u660ethis\u5bf9\u8c61\u6307\u5411\u7740\u5de6\u503c\u5bf9\u8c61;<\/li>\n<li>\u82e5\u5f15\u7528\u9650\u5b9a\u7b26\u4e3a&amp;&amp;,\u5219\u8868\u660ethis\u5bf9\u8c61\u6307\u5411\u7740\u53f3\u503c\u5bf9\u8c61\uff1b<\/li>\n<\/ul>\n<blockquote><p>\u53c2\u8003\u6587\u7ae0<\/p><\/blockquote>\n<blockquote><p><a href=\"http:\/\/pp-qq.github.io\/2016\/04\/16\/6.3-%E5%8F%B3%E5%80%BC%E5%BC%95%E7%94%A8%E5%92%8C%E6%88%90%E5%91%98%E5%87%BD%E6%95%B0\/\" target=\"_blank\" rel=\"noopener\">C++-\u5f15\u7528\u9650\u5b9a\u7b26<\/a><\/p><\/blockquote>\n<h2 id=\"\u91cd\u8f7d\u8fd0\u7b97\u4e0e\u7c7b\u578b\u8f6c\u6362\"><a name=\"t78\"><\/a>13 \u91cd\u8f7d\u8fd0\u7b97\u4e0e\u7c7b\u578b\u8f6c\u6362<\/h2>\n<h3 id=\"function\u7c7b\u6a21\u7248\"><a name=\"t79\"><\/a>13.1 function\u7c7b\u6a21\u7248<\/h3>\n<p>function\u6a21\u7248\u63d0\u4f9b\u4e00\u79cd\u901a\u7528\u3001\u591a\u6001\u7684\u51fd\u6570\u5c01\u88c5\u3002\u5176\u5b9e\u4f8b\u53ef\u4ee5\u5bf9\u4efb\u4f55\u53ef\u8c03\u7528\u7684\u76ee\u6807\u8fdb\u884c\u5b58\u50a8\u3001\u8d4b\u503c\u548c\u8c03\u7528\u64cd\u4f5c\uff0c\u8fd9\u4e9b\u76ee\u6807\u5305\u62ec\u51fd\u6570\u3001lambda\u8868\u8fbe\u5f0f\u3001\u7ed1\u5b9a\u8868\u8fbe\u5f0f\u4ee5\u53ca\u5176\u5b83\u51fd\u6570\u5bf9\u8c61\u7b49\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;functional&gt;<\/span><\/span><\/span>\r\n<span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iostream&gt;<\/span><\/span><\/span>\r\n \r\n<span class=\"kw\"><span class=\"hljs-keyword\">struct<\/span><\/span> Foo {\r\n    Foo(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> num) : num_(num) {}\r\n    <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">print_add<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\"> i)<\/span> <\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">const<\/span><\/span><\/span> { <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; num_+i &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">'<\/span><\/span><span class=\"ch\"><span class=\"hljs-string\">\\n<\/span><\/span><span class=\"st\"><span class=\"hljs-string\">'<\/span><\/span>; }\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> num_;\r\n};\r\n \r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">print_num<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\"> i)<\/span>\r\n<\/span>{\r\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; i &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">'<\/span><\/span><span class=\"ch\"><span class=\"hljs-string\">\\n<\/span><\/span><span class=\"st\"><span class=\"hljs-string\">'<\/span><\/span>;\r\n}\r\n \r\n<span class=\"kw\"><span class=\"hljs-keyword\">struct<\/span><\/span> PrintNum {\r\n    <span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span><\/span><\/span> <span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-title\">operator<\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\">()<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\"> i)<\/span> <\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">const<\/span><\/span><\/span>\r\n    {\r\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; i &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">'<\/span><\/span><span class=\"ch\"><span class=\"hljs-string\">\\n<\/span><\/span><span class=\"st\"><span class=\"hljs-string\">'<\/span><\/span>;\r\n    }\r\n};\r\n \r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span>\r\n<\/span>{\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u4fdd\u5b58\u81ea\u7531\u51fd\u6570<\/span><\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::function&lt;<span class=\"dt\"><span class=\"hljs-keyword\">void<\/span><\/span>(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>)&gt; f_display = print_num;\r\n    f_display(<span class=\"dv\">-9<\/span>);\r\n \r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u4fdd\u5b58 lambda \u8868\u8fbe\u5f0f<\/span><\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::function&lt;<span class=\"dt\"><span class=\"hljs-keyword\">void<\/span><\/span>()&gt; f_display_42 = []() { print_num(<span class=\"dv\">42<\/span>); };\r\n    f_display_42();\r\n \r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u4fdd\u5b58 std::bind \u7684\u7ed3\u679c<\/span><\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::function&lt;<span class=\"dt\"><span class=\"hljs-keyword\">void<\/span><\/span>()&gt; f_display_31337 = <span class=\"hljs-built_in\">std<\/span>::bind(print_num, <span class=\"dv\">31337<\/span>);\r\n    f_display_31337();\r\n \r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u4fdd\u5b58\u6210\u5458\u51fd\u6570<\/span><\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::function&lt;<span class=\"dt\"><span class=\"hljs-keyword\">void<\/span><\/span>(<span class=\"dt\"><span class=\"hljs-keyword\">const<\/span><\/span> Foo&amp;, <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>)&gt; f_add_display = &amp;Foo::print_add;\r\n    <span class=\"hljs-function\">Foo <span class=\"hljs-title\">foo<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dv\">314159<\/span><span class=\"hljs-function\">)<\/span>;\r\n    f_add_display(foo, <span class=\"dv\">1<\/span>);\r\n \r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u4fdd\u5b58\u6210\u5458\u51fd\u6570\u548c\u5bf9\u8c61<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> <span class=\"hljs-built_in\">std<\/span>::placeholders::_1;\r\n    <span class=\"hljs-built_in\">std<\/span>::function&lt;<span class=\"dt\"><span class=\"hljs-keyword\">void<\/span><\/span>(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>)&gt; f_add_display2= <span class=\"hljs-built_in\">std<\/span>::bind( &amp;Foo::print_add, foo, _1 );\r\n    f_add_display2(<span class=\"dv\">2<\/span>);\r\n \r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u4fdd\u5b58\u6210\u5458\u51fd\u6570\u548c\u5bf9\u8c61\u6307\u9488<\/span><\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::function&lt;<span class=\"dt\"><span class=\"hljs-keyword\">void<\/span><\/span>(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>)&gt; f_add_display3= <span class=\"hljs-built_in\">std<\/span>::bind( &amp;Foo::print_add, &amp;foo, _1 );\r\n    f_add_display3(<span class=\"dv\">3<\/span>);\r\n \r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u4fdd\u5b58\u51fd\u6570\u5bf9\u8c61<\/span><\/span>\r\n    <span class=\"hljs-built_in\">std<\/span>::function&lt;<span class=\"dt\"><span class=\"hljs-keyword\">void<\/span><\/span>(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>)&gt; f_display_obj = PrintNum();\r\n    f_display_obj(<span class=\"dv\">18<\/span>);\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"explicit\u7c7b\u578b\u8f6c\u6362\u8fd0\u7b97\u7b26\"><a name=\"t80\"><\/a>13.2 explicit\u7c7b\u578b\u8f6c\u6362\u8fd0\u7b97\u7b26<\/h3>\n<p>\u7528\u6765\u9632\u6b62\u7531\u6784\u9020\u51fd\u6570\u5b9a\u4e49\u7684\u9690\u5f0f\u8f6c\u6362\uff1b<\/p>\n<p>\u770b\u770b\u6784\u9020\u51fd\u6570\u7684\u9690\u5f0f\u8f6c\u6362\uff0c\u5982\u679c\u7c7b\u7684\u6784\u9020\u51fd\u6570\u6709\u4e00\u4e2a\u53c2\u6570\uff0c\u90a3\u4e48\u5728\u7f16\u8bd1\u7684\u65f6\u5019\u5c31\u4f1a\u6709\u4e00\u4e2a\u7f3a\u7701\u7684\u8f6c\u6362\u64cd\u4f5c\uff0c\u4f1a\u5c06\u5176\u53c2\u6570\u8f6c\u5316\u6210\u7c7b\u7684\u5bf9\u8c61\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> MyClass  \r\n{  \r\n<span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:  \r\nMyClass( <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> num );  \r\n}  \r\n\r\n<span class=\"co\"><span class=\"hljs-comment\">\/\/ \u7f16\u8bd1\u5668\u4f1a\u5c0610\u8f6c\u6362\u6210MyClass\u5bf9\u8c61<\/span><\/span>\r\nMyClass obj = <span class=\"dv\">10<\/span>; <\/code><\/pre>\n<\/div>\n<p>\u907f\u514d\u8fd9\u79cd\u81ea\u52a8\u8f6c\u6362\u7684\u64cd\u4f5c\u5219\u9700\u8981\u00a0<code>explicit<\/code>\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> MyClass  \r\n{  \r\n<span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:  \r\n<span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">explicit<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">MyClass<\/span><span class=\"hljs-params\">( <\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\"> num )<\/span>;  \r\n}  \r\n \r\nMyClass obj = <span class=\"dv\">10<\/span>; <span class=\"co\"><span class=\"hljs-comment\">\/\/err,can't non-explict convert <\/span><\/span><\/code><\/pre>\n<\/div>\n<p>\u5176\u53ea\u80fd\u7528\u5728\u7c7b\u5185\u90e8\u7684\u6784\u9020\u51fd\u6570\u58f0\u660e\u4e0a\uff0c\u4e0d\u80fd\u7528\u5728\u7c7b\u5916\u90e8\u7684\u51fd\u6570\u5b9a\u4e49\u4e0a\uff1b<\/p>\n<blockquote><p>\u88ab\u58f0\u660e\u4e3aexplicit\u7684\u6784\u9020\u51fd\u6570\u901a\u5e38\u6bd4\u5176non-explicit\u5144\u5f1f\u66f4\u53d7\u6b22\u8fce\u3002\u56e0\u4e3a\u5b83\u4eec\u7981\u6b62\u7f16\u8bd1\u5668\u6267\u884c\u975e\u9884\u671f\uff08\u5f80\u5f80\u4e5f\u4e0d\u88ab\u671f\u671b\uff09\u7684\u7c7b\u578b\u8f6c\u6362\u3002\u9664\u975e\u6211\u6709\u4e00\u4e2a\u597d\u7406\u7531\u5141\u8bb8\u6784\u9020\u51fd\u6570\u88ab\u7528\u4e8e\u9690\u5f0f\u7c7b\u578b\u8f6c\u6362\uff0c\u5426\u5219\u6211\u4f1a\u628a\u5b83\u58f0\u660e\u4e3aexplicit\u3002&#8212;Effective c++<\/p><\/blockquote>\n<h2 id=\"\u9762\u5411\u5bf9\u8c61\u7a0b\u5e8f\u8bbe\u8ba1\"><a name=\"t81\"><\/a>14 \u9762\u5411\u5bf9\u8c61\u7a0b\u5e8f\u8bbe\u8ba1<\/h2>\n<h3 id=\"\u865a\u51fd\u6570\u7684override\u548cfinal\u6307\u793a\u7b26\"><a name=\"t82\"><\/a>14.1 \u865a\u51fd\u6570\u7684override\u548cfinal\u6307\u793a\u7b26<\/h3>\n<p><code>override<\/code>\u00a0\u53ef\u4ee5\u5e2e\u52a9\u7a0b\u5e8f\u5458\u7684\u610f\u56fe\u66f4\u52a0\u7684\u6e05\u6670\u7684\u540c\u65f6\u8ba9\u7f16\u8bd1\u5668\u53ef\u4ee5\u4e3a\u6211\u4eec\u53d1\u73b0\u4e00\u4e9b\u9519\u8bef\u3002\u5176\u53ea\u80fd\u7528\u4e8e\u8986\u76d6\u57fa\u7c7b\u7684\u865a\u51fd\u6570\uff1b<\/p>\n<p><code>final<\/code>\u00a0\u4f7f\u5f97\u4efb\u4f55\u5c1d\u8bd5\u8986\u76d6\u8be5\u51fd\u6570\u7684\u64cd\u4f5c\u90fd\u5c06\u5f15\u53d1\u9519\u8bef\uff0c\u5e76\u4e0d\u7279\u6307\u865a\u51fd\u6570\uff1b<\/p>\n<blockquote><p>\u5747\u51fa\u73b0\u5728\u5f62\u53c2\u5217\u8868\uff08\u5305\u62ec\u4efb\u4f55const\u6216\u8005\u5f15\u7528\u9650\u5b9a\u7b26\uff09\u4ee5\u53ca\u5c3e\u7f6e\u8fd4\u56de\u7c7b\u578b\u4e4b\u540e<\/p><\/blockquote>\n<h3 id=\"\u5220\u9664\u7684\u62f7\u8d1d\u63a7\u5236\u548c\u7ee7\u627f\"><a name=\"t83\"><\/a>14.2 \u5220\u9664\u7684\u62f7\u8d1d\u63a7\u5236\u548c\u7ee7\u627f<\/h3>\n<p>\u5982\u679c\u51fd\u6570\u5728\u57fa\u7c7b\u4e2d\u88ab\u5b9a\u4e49\u4e3a\u662f\u5220\u9664\u7684\uff0c\u5219\u6d3e\u751f\u7c7b\u5bf9\u5e94\u7684\u4e5f\u662f\u5220\u9664\u7684\uff1b<\/p>\n<h3 id=\"\u7ee7\u627f\u7684\u6784\u9020\u51fd\u6570\"><a name=\"t84\"><\/a>14.3 \u7ee7\u627f\u7684\u6784\u9020\u51fd\u6570<\/h3>\n<p>\u59d4\u6d3e\u548c\u7ee7\u627f\u6784\u9020\u51fd\u6570\u662f\u7531C++11\u5f15\u8fdb\u4e3a\u4e86\u51cf\u5c11\u6784\u9020\u51fd\u6570\u91cd\u590d\u4ee3\u7801\u800c\u5f00\u53d1\u7684\u4e24\u79cd\u4e0d\u540c\u7684\u7279\u6027\uff1b<\/p>\n<p>a. \u901a\u8fc7\u7279\u6b8a\u7684\u521d\u59cb\u5316\u5217\u8868\u8bed\u6cd5\uff0c\u59d4\u6d3e\u6784\u9020\u51fd\u6570\u5141\u8bb8\u7c7b\u7684\u4e00\u4e2a\u6784\u9020\u51fd\u6570\u8c03\u7528\u5176\u5b83\u7684\u6784\u9020\u51fd\u6570<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\">X::X(<span class=\"dt\"><span class=\"hljs-keyword\">const<\/span><\/span> <span class=\"hljs-built_in\">string<\/span>&amp; name) : name_(name) {\r\n  ...\r\n}\r\n\r\nX::X() : X(<span class=\"st\"><span class=\"hljs-string\">\"\"<\/span><\/span>) { }<\/code><\/pre>\n<\/div>\n<p>b. \u7ee7\u627f\u6784\u9020\u51fd\u6570\u5141\u8bb8\u6d3e\u751f\u7c7b\u76f4\u63a5\u8c03\u7528\u57fa\u7c7b\u7684\u6784\u9020\u51fd\u6570\uff0c\u4e00\u5982\u7ee7\u627f\u57fa\u7c7b\u7684\u5176\u5b83\u6210\u5458\u51fd\u6570\uff0c\u800c\u65e0\u9700\u91cd\u65b0\u58f0\u660e\uff0c\u5f53\u57fa\u7c7b\u62e5\u6709\u591a\u4e2a\u6784\u9020\u51fd\u6570\u65f6\u8fd9\u4e00\u529f\u80fd\u5c24\u5176\u6709\u7528\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> Base {\r\n <span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:\r\n  Base();\r\n  Base(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> n);\r\n  Base(<span class=\"dt\"><span class=\"hljs-keyword\">const<\/span><\/span> <span class=\"hljs-built_in\">string<\/span>&amp; s);\r\n  ...\r\n};\r\n\r\n<span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> Derived : <span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span> Base {\r\n <span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:\r\n  <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> Base::Base;  <span class=\"co\"><span class=\"hljs-comment\">\/\/ Base's constructors are redeclared here.<\/span><\/span>\r\n};<\/code><\/pre>\n<\/div>\n<p>using\u58f0\u660e\u8bed\u53e5\u5c06\u4ee4\u7f16\u8bd1\u5668\u4ea7\u751f\u4ee3\u7801\uff0c\u5bf9\u4e8e\u57fa\u7c7b\u7684\u6bcf\u4e2a\u6784\u9020\u51fd\u6570\uff0c\u7f16\u8bd1\u5668\u90fd\u5728\u6d3e\u751f\u7c7b\u4e2d\u751f\u6210\u4e00\u4e2a\u5f62\u53c2\u5217\u8868\u5b8c\u5168\u76f8\u540c\u7684\u6784\u9020\u51fd\u6570\uff1b\u5982\u679c\u6d3e\u751f\u7c7b\u542b\u6709\u81ea\u5df1\u7684\u6570\u636e\u6210\u5458\uff0c\u5219\u8fd9\u4e9b\u6210\u5458\u5c06\u4f1a\u88ab\u9ed8\u8ba4\u521d\u59cb\u5316\uff1b<\/p>\n<h2 id=\"\u6a21\u7248\u4e0e\u6cdb\u578b\u7f16\u7a0b\"><a name=\"t85\"><\/a>15 \u6a21\u7248\u4e0e\u6cdb\u578b\u7f16\u7a0b<\/h2>\n<h3 id=\"\u58f0\u660e\u6a21\u7248\u7c7b\u578b\u5f62\u53c2\u4e3a\u53cb\u5143\"><a name=\"t86\"><\/a>15.1 \u58f0\u660e\u6a21\u7248\u7c7b\u578b\u5f62\u53c2\u4e3a\u53cb\u5143<\/h3>\n<p>\u5728\u65b0\u6807\u51c6\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u6a21\u677f\u7c7b\u578b\u53c2\u6570\u58f0\u660e\u4e3a\u53cb\u5143\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span> &lt;<span class=\"kw\"><span class=\"hljs-keyword\">typename<\/span><\/span> Type&gt; <span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> Bar {\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">friend<\/span><\/span> Type; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u5c06\u8bbf\u95ee\u6743\u9650\u6388\u4e88\u7528\u6765\u5b9e\u4f8b\u5316Bar\u7684\u7c7b\u578b<\/span><\/span>\r\n};<\/code><\/pre>\n<\/div>\n<p>\u6b64\u5904\u6211\u4eec\u5c06\u7528\u6765\u5b9e\u4f8b\u5316Bar\u7684\u7c7b\u578b\u58f0\u660e\u4e3a\u53cb\u5143\u3002\u56e0\u6b64\uff0c\u5bf9\u4e8e\u67d0\u4e2a\u7c7b\u578b\u540dFoo\uff0c<code>Foo<\/code>\u00a0\u5c06\u6210\u00a0<code>Bar&lt;Foo&gt;<\/code>\u00a0\u7684\u53cb\u5143\u3002<\/p>\n<h3 id=\"\u6a21\u7248\u7c7b\u578b\u522b\u540d\"><a name=\"t87\"><\/a>15.2 \u6a21\u7248\u7c7b\u578b\u522b\u540d<\/h3>\n<p>\u65b0\u6807\u51c6\u4e2d\u5141\u8bb8\u6211\u4eec\u4e3a\u6a21\u7248\u5b9a\u4e49\u4e00\u4e2a\u7c7b\u578b\u522b\u540d\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span>&lt;<span class=\"kw\"><span class=\"hljs-keyword\">typename<\/span><\/span> T&gt; <span class=\"kw\"><span class=\"hljs-keyword\">using<\/span><\/span> twin = pair&lt;T, T&gt;;\r\ntwin&lt;<span class=\"hljs-built_in\">string<\/span>&gt; authors;<\/code><\/pre>\n<\/div>\n<p>\u5176\u4e2d\uff0ctwin\u662f\u4e00\u4e2a\u00a0<code>pair&lt;T,T&gt;<\/code>\uff1b<\/p>\n<h3 id=\"\u6a21\u7248\u51fd\u6570\u7684\u9ed8\u8ba4\u6a21\u7248\u53c2\u6570\"><a name=\"t88\"><\/a>15.3 \u6a21\u7248\u51fd\u6570\u7684\u9ed8\u8ba4\u6a21\u7248\u53c2\u6570<\/h3>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span> &lt;<span class=\"kw\"><span class=\"hljs-keyword\">typename<\/span><\/span> T, <span class=\"kw\"><span class=\"hljs-keyword\">typename<\/span><\/span> F = less&lt;T&gt;&gt;\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">compare<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">const<\/span><\/span><\/span><\/span><span class=\"hljs-function\"> T &amp;v1, <\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">const<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\"> T &amp;v2, F f= F()<\/span>) <\/span>{\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">if<\/span><\/span> (f(v1, v2)) <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">-1<\/span>;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">if<\/span><\/span> (f(v2, v1)) <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">1<\/span>;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<p>\u5c31\u50cf\u4e4b\u524d\u80fd\u4e3a\u51fd\u6570\u53c2\u6570\u63d0\u4f9b\u9ed8\u8ba4\u5b9e\u53c2\u4e00\u6837\uff0ccompare\u6709\u4e00\u4e2a\u9ed8\u8ba4\u6a21\u7248\u5b9e\u53c2\u00a0<code>less&lt;T&gt;<\/code>\u548c\u4e00\u4e2a\u9ed8\u8ba4\u51fd\u6570\u5b9e\u53c2\u00a0<code>F()<\/code><\/p>\n<blockquote><p>\u53c2\u8003\u6587\u7ae0<\/p><\/blockquote>\n<blockquote><p><a href=\"http:\/\/www.jianshu.com\/p\/6613dbd0827d\" target=\"_blank\" rel=\"noopener\">C++\u7c7b\u6a21\u677f\u4e0e\u53cb\u5143\u7684\u5173\u7cfb<\/a><\/p><\/blockquote>\n<h3 id=\"\u5b9e\u4f8b\u5316\u7684\u663e\u793a\u63a7\u5236\"><a name=\"t89\"><\/a>15.4 \u5b9e\u4f8b\u5316\u7684\u663e\u793a\u63a7\u5236<\/h3>\n<p>\u663e\u793a\u5b9e\u4f8b\u5316\uff1a\u5728\u4e0d\u53d1\u751f\u51fd\u6570\u8c03\u7528\u7684\u65f6\u5019\u5c06\u51fd\u6570\u6a21\u7248\u5b9e\u4f8b\u5316\u6216\u8005\u5728\u4e0d\u9002\u7528\u7c7b\u6a21\u7248\u7684\u65f6\u5019\u5c06\u7c7b\u6a21\u7248\u5b9e\u4f8b\u5316\uff0c\u8fd9\u53ef\u4ee5\u907f\u514d\u5b9e\u4f8b\u5316\u76f8\u540c\u7684\u6a21\u7248\u6240\u5e26\u6765\u7684\u989d\u5916\u5f00\u9500\uff1b<\/p>\n<ul>\n<li>\u51fd\u6570\u6a21\u7248\u5b9e\u4f8b\u5316<\/li>\n<\/ul>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"hljs-keyword\">template<\/span>\u51fd\u6570\u8fd4\u56de\u7c7b\u578b \u51fd\u6570\u6a21\u677f\u540d&lt;\u5b9e\u9645\u7c7b\u578b\u5217\u8868&gt;\uff08\u51fd\u6570\u53c2\u6570\u5217\u8868\uff09<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u7c7b\u6a21\u7248\u5b9e\u4f8b\u5316<\/li>\n<\/ul>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span> <span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> \u7c7b\u6a21\u677f\u540d&lt;\u5b9e\u9645\u7c7b\u578b\u5217\u8868&gt;<\/code><\/pre>\n<\/div>\n<blockquote><p>\u53c2\u8003\u6587\u7ae0<\/p><\/blockquote>\n<blockquote><p><a href=\"http:\/\/www.voidcn.com\/blog\/k346k346\/article\/p-4834294.html\" target=\"_blank\" rel=\"noopener\">C++\u6a21\u677f\u4e4b\u9690\u5f0f\u5b9e\u4f8b\u5316\u3001\u663e\u793a\u5b9e\u4f8b\u5316\u3001\u663e\u793a\u8c03\u7528\u3001\u9690\u5f0f\u8c03\u7528\u548c\u6a21\u677f\u7279\u5316\u8be6\u89e3<\/a><\/p><\/blockquote>\n<h3 id=\"\u6a21\u7248\u51fd\u6570\u4e0e\u5c3e\u7f6e\u8fd4\u56de\u7c7b\u578b\"><a name=\"t90\"><\/a>15.5 \u6a21\u7248\u51fd\u6570\u4e0e\u5c3e\u7f6e\u8fd4\u56de\u7c7b\u578b<\/h3>\n<p>\u4f8b\u5b50\uff1a<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"co\"><span class=\"hljs-comment\">\/\/\u5c3e\u7f6e\u8fd4\u56de\u5141\u8bb8\u6211\u4eec\u5728\u53c2\u6570\u5217\u8868\u4e4b\u540e\u58f0\u660e\u8fd4\u56de\u7c7b\u578b<\/span><\/span>\r\n<span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span> &lt;<span class=\"kw\"><span class=\"hljs-keyword\">typename<\/span><\/span> T&gt;\r\n<span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">auto<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">func<\/span><span class=\"hljs-params\">(T beg, T end)<\/span> -&gt; <\/span><span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-title\">decltype<\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\">(*beg)<\/span> <\/span>{\r\n\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> *beg; <span class=\"co\"><span class=\"hljs-comment\">\/\/\u8fd4\u56de\u5e8f\u5217\u4e2d\u4e00\u4e2a\u5143\u7d20\u7684\u5f15\u7528<\/span><\/span>\r\n}<\/code><\/pre>\n<\/div>\n<h3 id=\"\u5f15\u7528\u6298\u53e0\u89c4\u5219\"><a name=\"t91\"><\/a>15.6 \u5f15\u7528\u6298\u53e0\u89c4\u5219<\/h3>\n<p>\u89c4\u5219\u5982\u4e0b\uff1a<\/p>\n<ul>\n<li>\u6240\u6709\u53f3\u503c\u5f15\u7528\u6298\u53e0\u5230\u53f3\u503c\u5f15\u7528\u4e0a\u4ecd\u7136\u662f\u4e00\u4e2a\u53f3\u503c\u5f15\u7528\uff0c\u6bd4\u5982\uff08A&amp;&amp; &amp;&amp; \u53d8\u6210 A&amp;&amp;\uff09<\/li>\n<li>\u6240\u6709\u7684\u5176\u5b83\u5f15\u7528\u7c7b\u578b\u4e4b\u95f4\u7684\u6298\u53e0\u90fd\u5c06\u4f1a\u53d8\u6210\u5de6\u503c\u5f15\u7528\uff0c\u6bd4\u5982\uff08A&amp; &amp;\u53d8\u6210A&amp;\uff0cA&amp; &amp;&amp; \u53d8\u6210 A&amp;\uff0cA&amp;&amp; &amp; \u53d8\u6210 A&amp;\uff09<\/li>\n<\/ul>\n<blockquote><p>\u5f15\u7528\u6298\u53e0\u53ea\u80fd\u5e94\u7528\u4e8e\u95f4\u63a5\u521b\u5efa\u7684\u5f15\u7528\u7684\u5f15\u7528\uff0c\u5982\u7c7b\u578b\u522b\u540d\u6216\u8005\u6a21\u7248\u53c2\u6570\uff1b<\/p><\/blockquote>\n<h3 id=\"\u7528static_cast\u5c06\u5de6\u503c\u8f6c\u6362\u4e3a\u53f3\u503c\"><a name=\"t92\"><\/a>15.7 \u7528static_cast\u5c06\u5de6\u503c\u8f6c\u6362\u4e3a\u53f3\u503c<\/h3>\n<p>\u53ef\u4ee5\u901a\u8fc7\u7c7b\u578b\u8f6c\u6362\u00a0<code>static_cast&lt;Type&amp;&amp;&gt;<\/code>\u00a0\u6765\u5c06\u8fd4\u56de\u53f3\u503c\u5f15\u7528\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> s=<span class=\"dv\">101<\/span>;\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\">&amp;&amp; <span class=\"hljs-title\">foo<\/span><span class=\"hljs-params\">()<\/span><\/span>{\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"kw\"><span class=\"hljs-keyword\">static_cast<\/span><\/span>&lt;<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>&amp;&amp;&gt;(s);\r\n} <span class=\"co\"><span class=\"hljs-comment\">\/\/\u8fd4\u56de\u503c\u4e3a\u53f3\u503c\u5f15\u7528<\/span><\/span>\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i=foo();   <span class=\"co\"><span class=\"hljs-comment\">\/\/\u53f3\u503c\u5f15\u7528\u4f5c\u4e3a\u53f3\u503c\uff0c\u5728\u8d4b\u503c\u8fd0\u7b97\u7b26\u7684\u53f3\u4fa7<\/span><\/span>\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>&amp;&amp; j=foo(); <span class=\"co\"><span class=\"hljs-comment\">\/\/j\u662f\u5177\u540d\u5f15\u7528\u3002\u56e0\u6b64\u8fd0\u7b97\u7b26\u53f3\u4fa7\u7684\u53f3\u503c\u5f15\u7528\u4f5c\u4e3a\u5de6\u503c<\/span><\/span>\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>* p=&amp;j;     <span class=\"co\"><span class=\"hljs-comment\">\/\/\u53d6\u5f97j\u7684\u5185\u5b58\u5730\u5740<\/span><\/span>\r\n}<\/code><\/pre>\n<\/div>\n<blockquote><p>\u53c2\u8003\u6587\u7ae0<\/p><\/blockquote>\n<blockquote><p><a href=\"https:\/\/zh.wikipedia.org\/wiki\/%E5%8F%B3%E5%80%BC%E5%BC%95%E7%94%A8\" target=\"_blank\" rel=\"noopener\">\u53f3\u503c\u5f15\u7528<\/a><\/p><\/blockquote>\n<h3 id=\"\u6807\u51c6\u5e93forward\u51fd\u6570\"><a name=\"t93\"><\/a>15.8 \u6807\u51c6\u5e93forward\u51fd\u6570<\/h3>\n<p>\u53f3\u503c\u5f15\u7528\u81f3\u5c11\u89e3\u51b3\u4e86\u4e24\u4e2a\u95ee\u9898\uff1a<\/p>\n<ol>\n<li>\u5b9e\u73b0\u00a0<code>move<\/code>\u00a0\u8bed\u4e49<\/li>\n<li>\u5b8c\u7f8e\u8f6c\u53d1<\/li>\n<\/ol>\n<h4 id=\"\u5b8c\u7f8e\u8f6c\u53d1\">\u5b8c\u7f8e\u8f6c\u53d1<\/h4>\n<p>\u6709\u7684\u65f6\u5019\uff0c\u6211\u4eec\u9700\u8981\u5c06\u4e00\u4e2a\u51fd\u6570\u4e2d\u67d0\u4e00\u7ec4\u53c2\u6570\u539f\u5c01\u4e0d\u52a8\u7684\u4f20\u9012\u7ed9\u53e6\u4e00\u4e2a\u51fd\u6570\uff0c\u8fd9\u91cc\u4e0d\u4ec5\u4ec5\u9700\u8981\u53c2\u6570\u7684\u503c\u4e0d\u53d8\uff0c\u800c\u4e14\u9700\u8981\u53c2\u6570\u7684\u7c7b\u578b\u5c5e\u6027\uff08\u5de6\u503c\uff0f\u53f3\u503c\uff09\u4fdd\u6301\u4e0d\u53d8\uff0d\u5b8c\u7f8e\u8f6c\u53d1\uff1b<\/p>\n<h4 id=\"\u4f7f\u7528forward\">\u4f7f\u7528forward<\/h4>\n<ul>\n<li>\u539f\u578b\uff1a<\/li>\n<\/ul>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span>&lt; <span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> T &gt;\r\n<span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">constexpr<\/span><\/span><\/span><span class=\"hljs-function\"> T&amp;&amp; <span class=\"hljs-title\">forward<\/span><span class=\"hljs-params\">( <\/span><\/span><span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">typename<\/span><\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-built_in\">std<\/span>::remove_reference&lt;T&gt;::type&amp; t )<\/span>;\r\n\r\n<span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span>&lt; <span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> T &gt;\r\n<span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">constexpr<\/span><\/span><\/span><span class=\"hljs-function\"> T&amp;&amp; <span class=\"hljs-title\">forward<\/span><span class=\"hljs-params\">( <\/span><\/span><span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">typename<\/span><\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-built_in\">std<\/span>::remove_reference&lt;T&gt;::type&amp;&amp; t )<\/span>;<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u4f8b\u5b50\uff1a<\/li>\n<\/ul>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iostream&gt;<\/span><\/span><\/span>\r\n<span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;utility&gt;<\/span><\/span><\/span>\r\n<span class=\"ot\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;memory&gt;<\/span><\/span><\/span>\r\n<span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> A {\r\n<span class=\"kw\"><span class=\"hljs-keyword\">public<\/span><\/span>:\r\n    A(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> &amp;&amp; n) { <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"rvalue constructor -&gt; n=\"<\/span><\/span> &lt;&lt; n &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;}\r\n    A(<span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span>&amp; n) { <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"st\"><span class=\"hljs-string\">\"lvalue constructor -&gt; n=\"<\/span><\/span> &lt;&lt; n &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;}\r\n};\r\n<span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span>&lt;<span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> T, <span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> U&gt;\r\n<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">unique_ptr<\/span>&lt;T&gt; make_unique1(U&amp;&amp; u) {\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">unique_ptr<\/span>&lt;T&gt;(<span class=\"kw\"><span class=\"hljs-keyword\">new<\/span><\/span> T(<span class=\"hljs-built_in\">std<\/span>::forward&lt;U&gt;(u)));\r\n    <span class=\"co\"><span class=\"hljs-comment\">\/\/return std::unique_ptr&lt;T&gt;(new T(u));<\/span><\/span>\r\n}\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> i = <span class=\"dv\">24<\/span>;\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> p1 = make_unique1&lt;A&gt;(<span class=\"dv\">666<\/span>); <span class=\"co\"><span class=\"hljs-comment\">\/\/ rvalue forwarding<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> p2 = make_unique1&lt;A&gt;(i); <span class=\"co\"><span class=\"hljs-comment\">\/\/ lvalue forwarding<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">auto<\/span><\/span> p3 = make_unique1&lt;A&gt;(<span class=\"hljs-built_in\">std<\/span>::move(i)); <span class=\"co\"><span class=\"hljs-comment\">\/\/ rvalue forwarding<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<p>\u4f46\u662f\u5982\u679c\u6211\u4eec\u6ca1\u6709\u4f7f\u7528\u00a0<code>forward<\/code>\u00a0\u51fd\u6570\uff0c\u7ed3\u679c\u5219\u5168\u90e8\u90fd\u8c03\u7528\u7684\u662f lvalue constructor\uff1b<\/p>\n<blockquote><p>\u53c2\u8003\u6587\u7ae0<\/p><\/blockquote>\n<blockquote><p><a href=\"http:\/\/www.sczyh30.com\/posts\/C-C\/cpp-move-semantic\/\" target=\"_blank\" rel=\"noopener\">Modern C++ | \u79fb\u52a8\u8bed\u4e49\u4e0e\u5b8c\u7f8e\u8f6c\u53d1 | Universal Reference<\/a><\/p><\/blockquote>\n<blockquote><p><a href=\"https:\/\/codinfox.github.io\/dev\/2014\/06\/03\/move-semantic-perfect-forward\/\" target=\"_blank\" rel=\"noopener\">\u79fb\u52a8\u8bed\u4e49\uff08move semantic\uff09\u548c\u5b8c\u7f8e\u8f6c\u53d1\uff08perfect forward\uff09<\/a><\/p><\/blockquote>\n<h3 id=\"\u53ef\u53d8\u53c2\u6570\u6a21\u7248\u4e0e\u8f6c\u53d1\"><a name=\"t94\"><\/a>15.9 \u53ef\u53d8\u53c2\u6570\u6a21\u7248\u4e0e\u8f6c\u53d1<\/h3>\n<p>\u53f3\u503c\u5f15\u7528\uff0b\u5b8c\u7f8e\u8f6c\u53d1\uff0b\u53ef\u53d8\u53c2\u6570\u6a21\u7248\u5b9e\u73b0\u4e0b\u9762\u8fd9\u4e2a\u51fd\u6570\uff1b<\/p>\n<div class=\"sourceCode\">\n<pre class=\"sourceCode cpp\"><code class=\"sourceCode cpp hljs\"><span class=\"co\"><span class=\"hljs-comment\">\/\/ args\u4e3a\u53f3\u503c\u5f15\u7528\uff0cdecltype\u7528\u4e8e\u8fd4\u56de\u503c<\/span><\/span>\r\n<span class=\"kw\"><span class=\"hljs-keyword\">template<\/span><\/span>&lt;<span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span> Function, <span class=\"kw\"><span class=\"hljs-keyword\">class<\/span><\/span>... Args&gt;\r\n<span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">auto<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">FuncWrapper<\/span><span class=\"hljs-params\">(Function &amp;&amp; f, Args &amp;&amp; ... args)<\/span> -&gt; <\/span><span class=\"kw\"><span class=\"hljs-function\"><span class=\"hljs-title\">decltype<\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\">(f(<span class=\"hljs-built_in\">std<\/span>::forward&lt;Args&gt;(args)<\/span>...))\r\n<\/span>{\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> f(<span class=\"hljs-built_in\">std<\/span>::forward&lt;Args&gt;(args)...);\r\n}\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">test0<\/span><span class=\"hljs-params\">()<\/span>\r\n<\/span>{\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt;<span class=\"st\"><span class=\"hljs-string\">\"void\"<\/span><\/span>&lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;\r\n}\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">test1<\/span><span class=\"hljs-params\">()<\/span>\r\n<\/span>{\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">1<\/span>;\r\n}\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">test2<\/span><span class=\"hljs-params\">(<\/span><\/span><span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-params\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><\/span><span class=\"hljs-function\"><span class=\"hljs-params\"> x)<\/span>\r\n<\/span>{\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> x;\r\n}\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-built_in\">string<\/span> <span class=\"hljs-title\">test3<\/span><span class=\"hljs-params\">(<span class=\"hljs-built_in\">string<\/span> s1, <span class=\"hljs-built_in\">string<\/span> s2)<\/span>\r\n<\/span>{\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> s1 + s2;\r\n}\r\n\r\n<span class=\"dt\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span><\/span><\/span><span class=\"hljs-function\"> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> num = <span class=\"dv\">10<\/span>;\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> &amp;&amp; nnum = num + <span class=\"dv\">10<\/span>;\r\n    <span class=\"dt\"><span class=\"hljs-keyword\">int<\/span><\/span> &amp; nnum2 = num;\r\n\r\n    FuncWrapper(test0);      <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6ca1\u6709\u8fd4\u56de\u503c\uff0c\u6253\u53701<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; FuncWrapper(test1) &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;      <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6ca1\u6709\u53c2\u6570\uff0c\u6709\u8fd4\u56de\u503c\uff0c\u8fd4\u56de1<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; FuncWrapper(test2, <span class=\"dv\">1<\/span>) &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;   <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6709\u53c2\u6570\uff0c\u6709\u8fd4\u56de\u503c\uff0c\u8fd4\u56de1<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; FuncWrapper(test2, <span class=\"hljs-built_in\">std<\/span>::move(num)) &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;   <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6709\u53c2\u6570\uff0c\u6709\u8fd4\u56de\u503c\uff0c\u8fd4\u56de\u5de6\u503c10<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; FuncWrapper(test2, <span class=\"hljs-built_in\">std<\/span>::move(nnum2)) &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;   <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6709\u53c2\u6570\uff0c\u6709\u8fd4\u56de\u503c\uff0c\u8fd4\u56de\u5de6\u503c\u5f15\u752810<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; FuncWrapper(test2, nnum) &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>;   <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6709\u53c2\u6570\uff0c\u6709\u8fd4\u56de\u503c\uff0c\u8fd4\u56de\u53f3\u503c\u5f15\u752820<\/span><\/span>\r\n    <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; FuncWrapper(test3, <span class=\"st\"><span class=\"hljs-string\">\"aa\"<\/span><\/span>, <span class=\"st\"><span class=\"hljs-string\">\"bb\"<\/span><\/span>) &lt;&lt; <span class=\"hljs-built_in\">endl<\/span>; <span class=\"co\"><span class=\"hljs-comment\">\/\/ \u6709\u53c2\u6570\uff0c\u6709\u8fd4\u56de\u503c\uff0c\u8fd4\u56de\"aabb\"<\/span><\/span>\r\n    <span class=\"kw\"><span class=\"hljs-keyword\">return<\/span><\/span> <span class=\"dv\">0<\/span>;\r\n}<\/code><\/pre>\n<\/div>\n<p>\u8fd4\u56de\u503c\u5206\u522b\u4e3a\uff1a<\/p>\n<pre><code class=\"hljs cpp\"><span class=\"hljs-keyword\">void<\/span>\r\n<span class=\"hljs-number\">1<\/span>\r\n<span class=\"hljs-number\">1<\/span>\r\n<span class=\"hljs-number\">10<\/span>\r\n<span class=\"hljs-number\">10<\/span>\r\n<span class=\"hljs-number\">20<\/span>\r\naabb\r\n<\/code><\/pre>\n<blockquote><p>\u53c2\u8003\u6587\u7ae0<\/p><\/blockquote>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>C++11 \u65b0\u7279\u6027\u603b\u7ed3 \u8f6c\u8f7d\u00a02017\u5e74<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[118],"class_list":["post-1100","post","type-post","status-publish","format-standard","hentry","tag-02-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/1100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=1100"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/1100\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=1100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=1100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=1100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}