{"id":719,"date":"2021-12-09T23:05:39","date_gmt":"2021-12-09T15:05:39","guid":{"rendered":"https:\/\/blog.cauchyschwarz.com\/?p=719"},"modified":"2021-12-09T23:06:20","modified_gmt":"2021-12-09T15:06:20","slug":"effective-stl%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0","status":"publish","type":"post","link":"https:\/\/blog.cauchyschwarz.com\/?p=719","title":{"rendered":"Effective STL\u8bfb\u4e66\u7b14\u8bb0"},"content":{"rendered":"\n<p>\u867d\u7136\u4e66\u6709\u70b9\u8001\u4e86\uff0c\u4e0d\u4ee3\u8868\u6240\u6709\u5185\u5bb9\u90fd\u8fc7\u65f6\u5427\u3002\u3002<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69e0ac141f571\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69e0ac141f571\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_3_%E4%BF%9D%E5%AD%98%E5%9C%A8%E5%AE%B9%E5%99%A8%E4%B8%AD%E7%9A%84%E7%B1%BB%E8%A6%81%E6%B3%A8%E6%84%8F%E6%8B%B7%E8%B4%9D%E7%9B%B8%E5%85%B3%E7%9A%84%E9%97%AE%E9%A2%98\" >Item 3 \u4fdd\u5b58\u5728\u5bb9\u5668\u4e2d\u7684\u7c7b\u8981\u6ce8\u610f\u62f7\u8d1d\u76f8\u5173\u7684\u95ee\u9898<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_4_%E4%BD%BF%E7%94%A8empty%E8%80%8C%E4%B8%8D%E6%98%AFsize0%E6%9D%A5%E5%88%A4%E6%96%AD%E5%AE%B9%E5%99%A8%E6%98%AF%E5%90%A6%E9%9D%9E%E7%A9%BA\" >Item 4 \u4f7f\u7528empty()\u800c\u4e0d\u662fsize()==0\u6765\u5224\u65ad\u5bb9\u5668\u662f\u5426\u975e\u7a7a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_5_Prefer_range_member_functions_to_their_single-element_counterparts\" >Item 5 Prefer range member functions to their single-element counterparts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_6_Be_alert_for_Cs_most_vexing_parse\" >Item 6 Be alert for C++&#8217;s most vexing parse<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_7_%E4%BF%9D%E5%AD%98%E6%8C%87%E9%92%88%E7%9A%84%E5%AE%B9%E5%99%A8%E5%9C%A8%E9%94%80%E6%AF%81%E6%97%B6%E4%B8%8D%E4%BC%9A%E9%87%8A%E6%94%BE%E6%8C%87%E9%92%88%E6%8C%87%E5%90%91%E7%9A%84%E5%86%85%E5%AD%98\" >Item 7 \u4fdd\u5b58\u6307\u9488\u7684\u5bb9\u5668\u5728\u9500\u6bc1\u65f6\u4e0d\u4f1a\u91ca\u653e\u6307\u9488\u6307\u5411\u7684\u5185\u5b58<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_8_%E7%A6%81%E6%AD%A2%E5%9C%A8%E5%AE%B9%E5%99%A8%E9%87%8C%E6%94%BE%E7%BD%AEauto_ptr\" >Item 8 \u7981\u6b62\u5728\u5bb9\u5668\u91cc\u653e\u7f6eauto_ptr<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_9_%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E5%AE%B9%E5%99%A8%E4%B8%AD%E7%9A%84%E5%85%83%E7%B4%A0\" >Item 9 \u5982\u4f55\u5220\u9664\u5bb9\u5668\u4e2d\u7684\u5143\u7d20<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#%E4%BD%BF%E7%94%A8%E5%AE%B9%E5%99%A8%E8%87%AA%E5%B8%A6%E7%9A%84%E6%88%90%E5%91%98%E5%87%BD%E6%95%B0remove%E6%88%96%E8%80%85erase\" >\u4f7f\u7528\u5bb9\u5668\u81ea\u5e26\u7684\u6210\u5458\u51fd\u6570remove\u6216\u8005erase<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#%E4%BD%BF%E7%94%A8%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\" >\u4f7f\u7528\u7b97\u6cd5\u6a21\u677f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_10_%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84allocator\" >Item 10 \u81ea\u5b9a\u4e49\u7684allocator<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#allocator%E6%9C%80%E5%A5%BD%E5%AE%9E%E7%8E%B0%E4%B8%BA%E7%B1%BB%E6%A8%A1%E6%9D%BF\" >allocator\u6700\u597d\u5b9e\u73b0\u4e3a\u7c7b\u6a21\u677f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#allocator%E9%9C%80%E8%A6%81%E6%8F%90%E4%BE%9B%E4%B8%A4%E4%B8%AAtypedef_allocator_pointer%E5%92%8Callocator_reference\" >allocator\u9700\u8981\u63d0\u4f9b\u4e24\u4e2atypedef&nbsp;allocator&lt;T&gt;::pointer\u548callocator&lt;T&gt;::reference<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#%E5%90%8C%E4%B8%80%E4%B8%AA%E7%B1%BB%E5%9E%8B%E7%9A%84allocator%E5%8F%AA%E8%83%BD%E4%BF%9D%E5%AD%98static%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E8%BF%99%E6%A0%B7%E7%94%B1%E4%B8%8D%E5%90%8Callocator%E5%AF%B9%E8%B1%A1%E5%88%86%E9%85%8D%E5%87%BA%E5%8E%BB%E7%9A%84%E5%86%85%E5%AD%98%E6%89%8D%E5%8F%AF%E4%BB%A5%E7%94%B1%E4%BB%BB%E6%84%8F%E4%B8%80%E4%B8%AAallocator%E5%AF%B9%E8%B1%A1%E5%9B%9E%E6%94%B6\" >\u540c\u4e00\u4e2a\u7c7b\u578b\u7684allocator\u53ea\u80fd\u4fdd\u5b58static\u7684\u6570\u636e\uff0c\u8fd9\u6837\u7531\u4e0d\u540callocator\u5bf9\u8c61\u5206\u914d\u51fa\u53bb\u7684\u5185\u5b58\u624d\u53ef\u4ee5\u7531\u4efb\u610f\u4e00\u4e2aallocator\u5bf9\u8c61\u56de\u6536<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#allocator%E7%9A%84%E6%8E%A5%E5%8F%A3%E6%98%AF%E5%92%8Cnew%E4%B8%8D%E4%B8%80%E6%A0%B7%E7%9A%84%EF%BC%9A\" >allocator\u7684\u63a5\u53e3\u662f\u548cnew\u4e0d\u4e00\u6837\u7684\uff1a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#allocator%E5%86%85%E9%83%A8%E9%9C%80%E8%A6%81%E6%8F%90%E4%BE%9B%E4%B8%80%E4%B8%AArebind%E7%9A%84%E6%A8%A1%E6%9D%BF%EF%BC%8C%E5%9B%A0%E4%B8%BASTL%E9%87%8C%E7%9A%84%E5%AE%B9%E5%99%A8%E5%9F%BA%E6%9C%AC%E4%B8%8D%E4%BC%9A%E8%B0%83%E7%94%A8%E4%BC%A0%E5%85%A5%E7%9A%84allocator%E6%9D%A5%E7%94%B3%E8%AF%B7%E5%86%85%E5%AD%98%EF%BC%8C%E8%80%8C%E6%98%AF%E8%B0%83%E7%94%A8allocator%E6%9D%A5%E7%94%B3%E8%AF%B7%E5%86%85%E5%AD%98%EF%BC%8CU%E8%A1%A8%E7%A4%BA%E5%AE%B9%E5%99%A8%E7%9C%9F%E6%AD%A3%E9%9C%80%E8%A6%81%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E7%B1%BB%E5%9E%8B%EF%BC%8C%E6%AF%94%E5%A6%82%E5%AF%B9%E4%BA%8Elist%EF%BC%8CU%E5%B0%B1%E6%98%AF%E8%8A%82%E7%82%B9%E3%80%82\" >allocator\u5185\u90e8\u9700\u8981\u63d0\u4f9b\u4e00\u4e2arebind\u7684\u6a21\u677f\uff0c\u56e0\u4e3aSTL\u91cc\u7684\u5bb9\u5668\u57fa\u672c\u4e0d\u4f1a\u8c03\u7528\u4f20\u5165\u7684allocator&lt;T&gt;\u6765\u7533\u8bf7\u5185\u5b58\uff0c\u800c\u662f\u8c03\u7528allocator&lt;U&gt;\u6765\u7533\u8bf7\u5185\u5b58\uff0cU\u8868\u793a\u5bb9\u5668\u771f\u6b63\u9700\u8981\u7684\u6570\u636e\u7ed3\u6784\u7c7b\u578b\uff0c\u6bd4\u5982\u5bf9\u4e8elist\uff0cU\u5c31\u662f\u8282\u70b9\u3002<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#allocator%E7%9A%84%E7%A4%BA%E4%BE%8B%E5%AE%9E%E7%8E%B0\" >allocator\u7684\u793a\u4f8b\u5b9e\u73b0<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_11_%E8%87%AA%E5%AE%9A%E4%B9%89allocator%E7%9A%84%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\" >Item 11 \u81ea\u5b9a\u4e49allocator\u7684\u9002\u7528\u573a\u666f<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#%E8%87%AA%E5%B7%B1%E6%9C%89%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86%E7%AE%97%E6%B3%95%EF%BC%9B\" >\u81ea\u5df1\u6709\u66f4\u9ad8\u6548\u7684\u5185\u5b58\u7ba1\u7406\u7b97\u6cd5\uff1b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#%E5%AF%B9allocator%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%A7%E6%B2%A1%E6%9C%89%E8%A6%81%E6%B1%82%EF%BC%8C%E8%80%8C%E9%BB%98%E8%AE%A4%E7%9A%84allocator%E6%9C%89%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%96%B9%E9%9D%A2%E7%9A%84%E5%BC%80%E9%94%80%EF%BC%9B\" >\u5bf9allocator\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u6ca1\u6709\u8981\u6c42\uff0c\u800c\u9ed8\u8ba4\u7684allocator\u6709\u7ebf\u7a0b\u5b89\u5168\u65b9\u9762\u7684\u5f00\u9500\uff1b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89allocator%E4%BB%8E%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98%E4%B8%AD%E7%94%B3%E8%AF%B7%E7%A9%BA%E9%97%B4%EF%BC%9B\" >\u4f7f\u7528\u81ea\u5b9a\u4e49allocator\u4ece\u5171\u4eab\u5185\u5b58\u4e2d\u7533\u8bf7\u7a7a\u95f4\uff1b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89allocator%E4%BB%8E%E4%B8%8D%E5%90%8C%E7%9A%84%E5%A0%86%E4%B8%AD%E7%94%B3%E8%AF%B7%E7%A9%BA%E9%97%B4%EF%BC%9B\" >\u4f7f\u7528\u81ea\u5b9a\u4e49allocator\u4ece\u4e0d\u540c\u7684\u5806\u4e2d\u7533\u8bf7\u7a7a\u95f4\uff1b<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_12_STL%E7%9A%84%E5%AE%B9%E5%99%A8%E4%B8%8D%E4%BF%9D%E8%AF%81%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8\" >Item 12 STL\u7684\u5bb9\u5668\u4e0d\u4fdd\u8bc1\u7ebf\u7a0b\u5b89\u5168<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_13_%E5%B0%BD%E9%87%8F%E4%BD%BF%E7%94%A8vector%E5%92%8Cstring%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BD%BF%E7%94%A8C%E9%87%8C%E9%9D%A2%E7%9A%84%E6%95%B0%E7%BB%84\" >Item 13 \u5c3d\u91cf\u4f7f\u7528vector\u548cstring\u800c\u4e0d\u662f\u4f7f\u7528C\u91cc\u9762\u7684\u6570\u7ec4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_14_%E4%BD%BF%E7%94%A8reserve%E5%87%BD%E6%95%B0%E6%9D%A5%E6%8F%90%E5%89%8D%E8%AE%BE%E7%BD%AE%E5%AE%B9%E9%87%8F%EF%BC%8C%E9%81%BF%E5%85%8D%E5%AE%B9%E5%99%A8%E6%89%A9%E5%BC%A0%E7%9A%84%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84reallocation%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%80%A7%E8%83%BD%E6%8D%9F%E8%80%97\" >Item 14 \u4f7f\u7528reserve\u51fd\u6570\u6765\u63d0\u524d\u8bbe\u7f6e\u5bb9\u91cf\uff0c\u907f\u514d\u5bb9\u5668\u6269\u5f20\u7684\u8fc7\u7a0b\u4e2d\u7684reallocation\u5e26\u6765\u7684\u6027\u80fd\u635f\u8017<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_15_%E4%BB%8B%E7%BB%8D%E4%BA%86%E5%9B%9B%E7%A7%8Dstring%E5%AE%9E%E7%8E%B0%E7%9A%84%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80\" >Item 15 \u4ecb\u7ecd\u4e86\u56db\u79cdstring\u5b9e\u73b0\u7684\u5185\u5b58\u5e03\u5c40<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_16_%E6%8A%8Astring%E5%92%8Cvector%E9%87%8C%E7%9A%84%E6%95%B0%E6%8D%AE%E4%BC%A0%E7%BB%99C%E9%A3%8E%E6%A0%BC%E7%9A%84%E6%8E%A5%E5%8F%A3\" >Item 16 \u628astring\u548cvector\u91cc\u7684\u6570\u636e\u4f20\u7ed9C\u98ce\u683c\u7684\u63a5\u53e3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_17_%E4%BD%BF%E7%94%A8swap%E6%9D%A5%E6%B6%88%E9%99%A4capacity%E5%8D%A0%E6%8D%AE%E7%9A%84%E5%A4%9A%E4%BD%99%E7%A9%BA%E9%97%B4\" >Item 17 \u4f7f\u7528swap\u6765\u6d88\u9664capacity\u5360\u636e\u7684\u591a\u4f59\u7a7a\u95f4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_18_%E9%81%BF%E5%85%8D%E4%BD%BF%E7%94%A8vector\" >Item 18 \u907f\u514d\u4f7f\u7528vector<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_19_Equality_and_Equivalence\" >Item 19 Equality and Equivalence<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_20_%E8%AE%B0%E5%BE%97%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E6%8C%87%E5%AE%9A%E5%85%B3%E8%81%94%E5%AE%B9%E5%99%A8%E7%9A%84%E6%AF%94%E8%BE%83%E5%87%BD%E6%95%B0%E6%9D%A5%E8%87%AA%E5%AE%9A%E4%B9%89%E5%85%83%E7%B4%A0%E7%9A%84%E6%8E%92%E5%BA%8F%E8%A7%84%E5%88%99\" >Item 20 \u8bb0\u5f97\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a\u5173\u8054\u5bb9\u5668\u7684\u6bd4\u8f83\u51fd\u6570\u6765\u81ea\u5b9a\u4e49\u5143\u7d20\u7684\u6392\u5e8f\u89c4\u5219<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_21_%E5%85%B3%E8%81%94%E5%AE%B9%E5%99%A8%E7%9A%84%E6%AF%94%E8%BE%83%E5%87%BD%E6%95%B0%E5%BF%85%E9%A1%BB%E6%98%AF%E4%B8%A5%E6%A0%BC%E7%9A%84%E5%A4%A7%E4%BA%8E%E6%88%96%E5%B0%8F%E4%BA%8E\" >Item 21 \u5173\u8054\u5bb9\u5668\u7684\u6bd4\u8f83\u51fd\u6570\u5fc5\u987b\u662f\u4e25\u683c\u7684\u5927\u4e8e\u6216\u5c0f\u4e8e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_22_%E4%B8%8D%E8%A6%81%E4%BF%AE%E6%94%B9set%E5%92%8Cmultiset%E9%87%8C%E7%9A%84key\" >Item 22 \u4e0d\u8981\u4fee\u6539set\u548cmultiset\u91cc\u7684key<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_23_%E5%A6%82%E6%9E%9C%E5%8F%AA%E6%98%AF%E6%9F%A5%E8%AF%A2%E6%9C%89%E5%BA%8F%E7%9A%84%E6%95%B0%E7%BB%84%E5%8F%AF%E8%83%BD%E6%AF%94%E5%85%B3%E8%81%94%E5%AE%B9%E5%99%A8%E6%9B%B4%E9%AB%98%E6%95%88\" >Item 23 \u5982\u679c\u53ea\u662f\u67e5\u8be2\u6709\u5e8f\u7684\u6570\u7ec4\u53ef\u80fd\u6bd4\u5173\u8054\u5bb9\u5668\u66f4\u9ad8\u6548<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_24_map%E7%9A%84%E4%B8%89%E4%B8%AA%E5%87%BD%E6%95%B0%E3%80%81insert%E5%92%8Cemplace\" >Item 24 map\u7684\u4e09\u4e2a\u51fd\u6570[]\u3001insert\u548cemplace<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_25_%E5%AD%A6%E4%BC%9A%E4%BD%BF%E7%94%A8unordered_set%E4%B8%8Eunordered_map\" >Item 25 \u5b66\u4f1a\u4f7f\u7528unordered_set\u4e0eunordered_map<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_26_%E4%BC%98%E5%85%88%E4%BD%BF%E7%94%A8iterator\" >Item 26 \u4f18\u5148\u4f7f\u7528iterator<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_27_const_iterator%E8%BD%AC%E6%8D%A2%E4%B8%BAiterator\" >Item 27 const_iterator\u8f6c\u6362\u4e3aiterator<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_28_reverse_iterator%E7%9A%84base%E5%87%BD%E6%95%B0\" >Item 28 reverse_iterator\u7684base\u51fd\u6570<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_30_Make_sure_destination_ranges_are_big_enough\" >Item 30 Make sure destination ranges are big enough<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_31_%E5%87%A0%E7%A7%8D%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95\" >Item 31 \u51e0\u79cd\u6392\u5e8f\u7b97\u6cd5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_32_remove%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\" >Item 32 remove\u7b97\u6cd5\u6a21\u677f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_33_%E8%BF%99%E5%B0%B1%E5%AF%BC%E8%87%B4%E4%BA%86remove%E5%92%8Cremove_if%E4%B8%8D%E8%83%BD%E7%94%A8%E5%9C%A8%E4%BF%9D%E5%AD%98%E6%8C%87%E9%92%88%E7%9A%84%E5%AE%B9%E5%99%A8%E4%B8%8A%E9%9D%A2\" >Item 33 \u8fd9\u5c31\u5bfc\u81f4\u4e86remove\u548cremove_if\u4e0d\u80fd\u7528\u5728\u4fdd\u5b58\u6307\u9488\u7684\u5bb9\u5668\u4e0a\u9762<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_34_%E6%B3%A8%E6%84%8F%E6%9F%90%E4%BA%9B%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF%E6%98%AF%E5%90%A6%E8%A6%81%E6%B1%82%E8%BE%93%E5%85%A5%E6%9C%89%E5%BA%8F\" >Item 34 \u6ce8\u610f\u67d0\u4e9b\u7b97\u6cd5\u6a21\u677f\u662f\u5426\u8981\u6c42\u8f93\u5165\u6709\u5e8f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-44\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_35_%E5%AE%9E%E7%8E%B0case-insensitive%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%AF%94%E8%BE%83\" >Item 35 \u5b9e\u73b0case-insensitive\u7684\u5b57\u7b26\u4e32\u6bd4\u8f83<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-45\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_36_%E5%AE%9E%E7%8E%B0copy_if\" >Item 36 \u5b9e\u73b0copy_if<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-46\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_37_accumulate%E4%B8%8Efor_each\" >Item 37 accumulate\u4e0efor_each<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-47\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_38_pass-by-value%E7%9A%84%E5%87%BD%E6%95%B0%E5%AF%B9%E8%B1%A1\" >Item 38 pass-by-value\u7684\u51fd\u6570\u5bf9\u8c61<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-48\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_39_predicate%E5%BA%94%E8%AF%A5%E6%98%AFpure_functions\" >Item 39 predicate\u5e94\u8be5\u662fpure functions<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-49\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_40_Make_functor_classes_adaptable\" >Item 40 Make functor classes adaptable<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-50\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_41_ptr_fun%EF%BC%8Cmem_fun%E4%B8%8Emem_fun_ref\" >Item 41 ptr_fun\uff0cmem_fun\u4e0emem_fun_ref<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-51\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_42_%E4%B8%8D%E8%A6%81%E9%80%9A%E8%BF%87%E6%A8%A1%E6%9D%BF%E7%89%B9%E5%8C%96%E6%94%B9%E5%86%99std_less\" >Item 42 \u4e0d\u8981\u901a\u8fc7\u6a21\u677f\u7279\u5316\u6539\u5199std::less<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-52\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_43_%E4%BD%BF%E7%94%A8%E7%8E%B0%E6%9C%89%E7%9A%84%E7%AE%97%E6%B3%95%E5%BA%93%E8%80%8C%E4%B8%8D%E6%98%AF%E6%89%8B%E5%86%99%E7%AE%97%E6%B3%95loop\" >Item 43 \u4f7f\u7528\u73b0\u6709\u7684\u7b97\u6cd5\u5e93\u800c\u4e0d\u662f\u624b\u5199\u7b97\u6cd5(loop)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-53\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_44_%E4%BD%BF%E7%94%A8%E5%90%8C%E5%90%8D%E7%9A%84%E6%88%90%E5%91%98%E5%87%BD%E6%95%B0%E8%80%8C%E4%B8%8D%E6%98%AF%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\" >Item 44 \u4f7f\u7528\u540c\u540d\u7684\u6210\u5458\u51fd\u6570\u800c\u4e0d\u662f\u7b97\u6cd5\u6a21\u677f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-54\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_45_%E7%94%A8%E4%BA%8E%E5%9C%A8%E5%AE%B9%E5%99%A8%E4%B8%AD%E6%90%9C%E7%B4%A2%E7%9A%84%E5%87%A0%E4%B8%AA%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\" >Item 45 \u7528\u4e8e\u5728\u5bb9\u5668\u4e2d\u641c\u7d22\u7684\u51e0\u4e2a\u7b97\u6cd5\u6a21\u677f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-55\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_46_%E5%B0%BD%E9%87%8F%E4%BD%BF%E7%94%A8%E5%87%BD%E6%95%B0%E5%AF%B9%E8%B1%A1%E8%80%8C%E4%B8%8D%E6%98%AF%E5%87%BD%E6%95%B0%E6%8C%87%E9%92%88%E4%BD%9C%E4%B8%BA%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF%E7%9A%84%E5%8F%82%E6%95%B0\" >Item 46 \u5c3d\u91cf\u4f7f\u7528\u51fd\u6570\u5bf9\u8c61\u800c\u4e0d\u662f\u51fd\u6570\u6307\u9488\u4f5c\u4e3a\u7b97\u6cd5\u6a21\u677f\u7684\u53c2\u6570<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-56\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_47_%E4%B8%8D%E8%A6%81%E5%86%99write-only_code\" >Item 47 \u4e0d\u8981\u5199write-only code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-57\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_48_include%E5%A4%B4%E6%96%87%E4%BB%B6%E6%97%B6%E8%A6%81%E5%86%99%E6%AD%A3%E7%A1%AE\" >Item 48 include\u5934\u6587\u4ef6\u65f6\u8981\u5199\u6b63\u786e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-58\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_49_%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BBSTL%E7%9B%B8%E5%85%B3%E7%9A%84%E7%BC%96%E8%AF%91%E6%8A%A5%E9%94%99%E4%BF%A1%E6%81%AF\" >Item 49 \u5982\u4f55\u9605\u8bfbSTL\u76f8\u5173\u7684\u7f16\u8bd1\u62a5\u9519\u4fe1\u606f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-59\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=719\/#Item_50_STL%E7%9B%B8%E5%85%B3%E7%BD%91%E7%AB%99\" >Item 50 STL\u76f8\u5173\u7f51\u7ad9<\/a><\/li><\/ul><\/nav><\/div>\n<h1 class=\"wp-block-heading\" id=\"item-3-%E4%BF%9D%E5%AD%98%E5%9C%A8%E5%AE%B9%E5%99%A8%E4%B8%AD%E7%9A%84%E7%B1%BB%E8%A6%81%E6%B3%A8%E6%84%8F%E6%8B%B7%E8%B4%9D%E7%9B%B8%E5%85%B3%E7%9A%84%E9%97%AE%E9%A2%98\"><span class=\"ez-toc-section\" id=\"Item_3_%E4%BF%9D%E5%AD%98%E5%9C%A8%E5%AE%B9%E5%99%A8%E4%B8%AD%E7%9A%84%E7%B1%BB%E8%A6%81%E6%B3%A8%E6%84%8F%E6%8B%B7%E8%B4%9D%E7%9B%B8%E5%85%B3%E7%9A%84%E9%97%AE%E9%A2%98\"><\/span>Item 3 \u4fdd\u5b58\u5728\u5bb9\u5668\u4e2d\u7684\u7c7b\u8981\u6ce8\u610f\u62f7\u8d1d\u76f8\u5173\u7684\u95ee\u9898<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u5bb9\u5668\u4f1a\u5bf9\u4fdd\u5b58\u5728\u5176\u4e2d\u7684\u5bf9\u8c61\u8fdb\u884c\u62f7\u8d1d\u64cd\u4f5c\uff0c<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\u5bb9\u5668\u4e2d\u7684\u5bf9\u8c61\u5e94\u8be5\u5c0f\u5de7\uff0c\u907f\u514d\u62f7\u8d1d\u5e26\u6765\u7684\u6027\u80fd\u635f\u8017\uff1b<\/li><li>\u5bb9\u5668\u4e2d\u7684\u5bf9\u8c61\u5e94\u8be5\u6b63\u786e\u5b9e\u73b0\u62f7\u8d1d\u6784\u9020\u51fd\u6570\u4e0e\u62f7\u8d1d\u8d4b\u503c\u51fd\u6570\uff1b<\/li><li>\u628a\u5b50\u7c7b\u653e\u8fdb\u4fdd\u5b58\u7236\u7c7b\u7684\u5bb9\u5668\u91cc\uff0c\u5bb9\u5668\u53ea\u4f1a\u8c03\u7528\u7236\u7c7b\u7684\u76f8\u5173\u62f7\u8d1d\u51fd\u6570\uff0c\u56e0\u6b64\u5b50\u7c7b\u7684\u4fe1\u606f\u5168\u90e8\u4e22\u6389\u4e86\uff1b<\/li><\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-4-%E4%BD%BF%E7%94%A8empty%E8%80%8C%E4%B8%8D%E6%98%AFsize0%E6%9D%A5%E5%88%A4%E6%96%AD%E5%AE%B9%E5%99%A8%E6%98%AF%E5%90%A6%E9%9D%9E%E7%A9%BA\"><span class=\"ez-toc-section\" id=\"Item_4_%E4%BD%BF%E7%94%A8empty%E8%80%8C%E4%B8%8D%E6%98%AFsize0%E6%9D%A5%E5%88%A4%E6%96%AD%E5%AE%B9%E5%99%A8%E6%98%AF%E5%90%A6%E9%9D%9E%E7%A9%BA\"><\/span>Item 4 \u4f7f\u7528empty()\u800c\u4e0d\u662fsize()==0\u6765\u5224\u65ad\u5bb9\u5668\u662f\u5426\u975e\u7a7a<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u6309\u7167\u4e66\u4e2d\u7684\u8bf4\u6cd5\uff0clist\u53ef\u80fd\u4e3a\u4e86<code>splice()<\/code>\u7684\u5e38\u6570\u65f6\u95f4\u590d\u6742\u5ea6\u5b9e\u73b0\uff0c\u5bfc\u81f4<code>size()<\/code>\u51fd\u6570\u7684\u65f6\u95f4\u590d\u6742\u5ea6\u662f\u7ebf\u6027\u7684\u3002<br>\u4e0d\u8fc7\u6309\u7167cppreference\u7f51\u7ad9\u7684\u8bf4\u660e\uff0cc++11\u5df2\u7ecf\u8981\u6c42<code>size()<\/code>\u51fd\u6570\u7684\u5b9e\u73b0\u662f\u5e38\u6570\u65f6\u95f4\u7684\u4e86\u3002\u56e0\u6b64c++11\u4e2d\uff0c<code>splice()<\/code>\u51fd\u6570\u5b9e\u73b0\u4e0d\u518d\u8981\u6c42\u5e38\u6570\u65f6\u95f4\u5b9e\u73b0\u4e86\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-5-prefer-range-member-functions-to-their-single-element-counterparts\"><span class=\"ez-toc-section\" id=\"Item_5_Prefer_range_member_functions_to_their_single-element_counterparts\"><\/span>Item 5 Prefer range member functions to their single-element counterparts<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u4e0e\u5176\u81ea\u5df1\u5199\u4e2a\u5faa\u73af\u6765\u5bf9\u6bcf\u4e00\u4e2a\u5143\u7d20\u8fdb\u884c\u64cd\u4f5c\uff0c\u4e0d\u5982\u76f4\u63a5\u8c03\u7528\u73b0\u6210\u7684\u6309range\u8fdb\u884c\u5904\u7406\u7684stl\u51fd\u6570\u3002\u539f\u56e0\u5217\u4e3e\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u81ea\u5df1\u53ef\u80fd\u5199\u5faa\u73af\u65f6\u72af\u9519\uff1b<\/li><li>\u8c03\u7528\u73b0\u6210\u7684\u6309range\u5904\u7406\u7684stl\u51fd\u6570\u53ef\u80fd\u4ee3\u7801\u66f4\u7d27\u51d1\uff0c\u770b\u8d77\u6765\u66f4\u76f4\u767d\uff1b<\/li><li>\u73b0\u6210\u7684\u6309range\u5904\u7406\u7684stl\u51fd\u6570\u53ef\u80fd\u505a\u4e86\u4f60\u61d2\u5f97\u505a\u7684\u4f18\u5316\uff0c\u6bd4\u5982stl\u51fd\u6570\u91cc\u53ef\u80fd\u5c31\u4e0d\u4f1a\u5728\u5faa\u73af\u7684\u6bcf\u6b21\u5224\u65ad\u91cc\u6bd4\u8f83\u8fed\u4ee3\u5668\u662f\u5426\u7b49\u4e8e<code>xx.end()<\/code>\uff0cstl\u51fd\u6570\u7684\u5b9e\u73b0\u53ef\u80fd\u5c31\u5b9e\u73b0\u628a\u8fd9\u4e2a<code>end()<\/code>\u8fed\u4ee3\u5668\u7684\u503c\u7ed9\u5b58\u4e86\u8d77\u6765\uff0c\u4e0d\u7528\u6bcf\u6b21\u90fd\u8c03\u7528<code>end()<\/code>\u51fd\u6570\u53bb\u83b7\u53d6\uff1b<\/li><li>\u73b0\u6210\u7684\u6309range\u5904\u7406\u7684stl\u51fd\u6570\u53ef\u80fd\u6839\u636e\u5bb9\u5668\u7684\u5185\u90e8\u6570\u636e\u7ed3\u6784\u505a\u4e86\u4f60\u4e0d\u80fd\u505a\u7684\u3001\u6ca1\u60f3\u5230\u7684\u4f18\u5316\u3002\u6bd4\u5982\u4ecelist\u4e2d\u79fb\u9664\u4e00\u4e9b\u76f8\u90bb\u7684\u5143\u7d20\uff0c\u81ea\u5df1\u5199\u5faa\u73af\u53ef\u80fd\u8981\u4e00\u4e2a\u4e00\u4e2a\u7684\u79fb\u9664\uff0c\u7136\u540e\u6bcf\u6b21\u79fb\u9664\u7684\u65f6\u5019\u5c31\u8981\u628a\u8be5\u8282\u70b9\u7684\u524d\u540e\u8282\u70b9\u518d\u91cd\u65b0\u8fde\u8d77\u6765\uff0c\u800cstl\u7684\u5b9e\u73b0\u53ef\u80fd\u5c31\u76f4\u63a5\u628a\u8fd9\u4e00\u6bb5\u94fe\u8868\u7ed9\u76f4\u63a5\u79fb\u9664\u4e86\uff0c\u5c11\u4e86\u79fb\u9664\u6bcf\u4e2a\u5143\u7d20\u65f6\u8fde\u63a5\u524d\u540e\u8282\u70b9\u7684\u64cd\u4f5c\u3002<\/li><\/ul>\n\n\n\n<p>\u6700\u540e\u4e66\u4e2d\u603b\u7ed3\u4e86\u4e00\u4e9b\u6240\u8c13\u7684range\u51fd\u6570\u6709\u54ea\u4e9b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>range construction<\/li><li>range insertion<\/li><li>range erasure<\/li><li>range assignment<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-6-be-alert-for-cs-most-vexing-parse\"><span class=\"ez-toc-section\" id=\"Item_6_Be_alert_for_Cs_most_vexing_parse\"><\/span>Item 6 Be alert for C++&#8217;s most vexing parse<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>C++\u91cc\u9762\u6709\u5f88\u591a\u5bb9\u6613\u6df7\u6dc6\u7684\u5730\u65b9\uff0c\u6bd4\u5982\u7b80\u5355\u7684\u4f8b\u5b50\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">#include &lt;iostream&gt;\nusing namespace std;\n\nclass A {\npublic:\n\tA(){ cout &lt;&lt; \"constructor\" &lt;&lt; endl; }\n};\n\nint main(int argc, char **argv)\n{\n\tA a();\n\treturn 0;\n}\n<\/code><\/pre>\n\n\n\n<p>\u8fd9\u4e2a\u4f8b\u5b50\u91cc\u770b\u4f3c\u7528<code>A a()<\/code>\u58f0\u660e\u4e86\u4e00\u4e2aA\u7c7b\u578b\u7684\u53d8\u91cfa\uff0c\u53ef\u5176\u5b9e\u662f\u58f0\u660e\u4e86\u4e00\u4e2a\u8fd4\u56de\u7c7b\u578b\u4e3aA\u7684\u51fd\u6570\u3002\u4e66\u4e2d\u4e3e\u7684\u590d\u6742\u4f8b\u5b50\u662f\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">ifstream dataFile(\"inst.dat\");\nlist&lt;int&gt; dat(istream_iterator&lt;int&gt;(dataFile),\n\t\t\tistream_iterator&lt;int&gt;());\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u7684\u4ee3\u7801\u770b\u8d77\u6765\u53ef\u4ee5\u7528\u6765\u521d\u59cb\u5316dat\uff0c\u4f46\u662f\u5b9e\u9645\u4e0a\u58f0\u660e\u4e86\u4e00\u4e2adat\u51fd\u6570\uff0c<code>istream_iterator&lt;int&gt;(dataFile)<\/code>\u88ab\u5f53\u6210\u4e86\u8fd9\u4e2a\u51fd\u6570\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u3002<br>\u8fd9\u91cc\u9762\u6d89\u53ca\u5230\u7684\u53e6\u4e00\u4e2a\u77e5\u8bc6\u70b9\u662f\u51fd\u6570\u7684\u53c2\u6570\u662f\u53ef\u4ee5\u7528\u62ec\u53f7\u62ec\u8d77\u6765\u7684\uff0c\u6bd4\u5982<code>int f(double (d))<\/code>\u3002<\/p>\n\n\n\n<p>\u4e3a\u4e86\u89e3\u51b3\u4e0a\u9762\u7684\u95ee\u9898\uff0c\u4e66\u4e2d\u63d0\u51fa\u7684\u89e3\u51b3\u65b9\u6848\u662f\u628a\u53c2\u6570\u7528\u62ec\u53f7\u62ec\u8d77\u6765\uff0c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">ifstream dataFile(\"inst.dat\");\nlist&lt;int&gt; dat((istream_iterator&lt;int&gt;(dataFile)),\n\t\t\tistream_iterator&lt;int&gt;());\n<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u8fd9\u6837\u505a\u7684\u539f\u56e0\u662f\u5728\u58f0\u660e\u51fd\u6570\u7684\u65f6\u5019\uff0c\u53ef\u4ee5\u7ed9\u53c2\u6570\u540d\u52a0\u4e0a\u5706\u62ec\u53f7\uff0c\u4f46\u662f\u5374\u4e0d\u80fd\u7ed9\u6574\u4e2a\u5e26\u7c7b\u578b\u7684\u53c2\u6570\u52a0\u4e0a\u5706\u62ec\u53f7\uff0c\u4e8e\u662f\u4e0a\u9762\u7684\u4ee3\u7801\u5c31\u4e0d\u80fd\u88ab\u89e3\u91ca\u4e3a\u4e00\u4e2a\u51fd\u6570\u7684\u58f0\u660e\u4e86\uff0c\u800c\u53ea\u80fd\u88ab\u7f16\u8bd1\u5668\u89e3\u6790\u4e3alist\u7684\u6784\u9020\u51fd\u6570\u7684\u8c03\u7528\u3002<\/p>\n\n\n\n<p>\u8fd9\u91cc\u8fd8\u6d89\u53ca\u5230\u4e00\u4e2a\u77e5\u8bc6\u70b9\uff0c\u90a3\u5c31\u662f\u51fa\u73b0\u8fd9\u79cd\u95ee\u9898\u7684\u539f\u56e0\u5728\u4e8eC++\u603b\u662f\u4f1a\u5c3d\u53ef\u80fd\u7684\u628a\u8bed\u53e5\u89e3\u6790\u4e3a\u51fd\u6570\u7684\u58f0\u660e\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-7-%E4%BF%9D%E5%AD%98%E6%8C%87%E9%92%88%E7%9A%84%E5%AE%B9%E5%99%A8%E5%9C%A8%E9%94%80%E6%AF%81%E6%97%B6%E4%B8%8D%E4%BC%9A%E9%87%8A%E6%94%BE%E6%8C%87%E9%92%88%E6%8C%87%E5%90%91%E7%9A%84%E5%86%85%E5%AD%98\"><span class=\"ez-toc-section\" id=\"Item_7_%E4%BF%9D%E5%AD%98%E6%8C%87%E9%92%88%E7%9A%84%E5%AE%B9%E5%99%A8%E5%9C%A8%E9%94%80%E6%AF%81%E6%97%B6%E4%B8%8D%E4%BC%9A%E9%87%8A%E6%94%BE%E6%8C%87%E9%92%88%E6%8C%87%E5%90%91%E7%9A%84%E5%86%85%E5%AD%98\"><\/span>Item 7 \u4fdd\u5b58\u6307\u9488\u7684\u5bb9\u5668\u5728\u9500\u6bc1\u65f6\u4e0d\u4f1a\u91ca\u653e\u6307\u9488\u6307\u5411\u7684\u5185\u5b58<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u8fd9\u4e2a\u89c2\u70b9\u5176\u5b9e\u662f\u663e\u800c\u6613\u89c1\u7684\u4e8b\u5b9e\u3002\u4e66\u4e2d\u63d0\u51fa\u7684\u4e00\u4e2a\u5c0f\u6280\u5de7\u5012\u662f\u6bd4\u8f83\u6709\u7528\uff0c\u90a3\u5c31\u662f\u5728\u8bbe\u8ba1\u51fd\u6570\u5bf9\u8c61\u7684\u65f6\u5019\uff0c\u4e0d\u8981\u628a\u51fd\u6570\u5bf9\u8c61\u7684\u7c7b\u5b9e\u73b0\u6210\u6a21\u677f\uff0c\u800c\u662f\u628a\u51fd\u6570\u5bf9\u8c61\u91cc\u9762\u7684<code>()<\/code>\u51fd\u6570\u5b9e\u73b0\u6210\u6a21\u677f\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u8ba9\u7f16\u8bd1\u5668\u81ea\u52a8\u63a8\u5bfc\u7c7b\u578b\u53c2\u6570\uff0c\u800c\u4e0d\u7528\u5728\u4ee3\u7801\u91cc\u5177\u4f53\u6307\u660e\u6a21\u677f\u7684\u7c7b\u578b\u53c2\u6570\u4e86\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-8-%E7%A6%81%E6%AD%A2%E5%9C%A8%E5%AE%B9%E5%99%A8%E9%87%8C%E6%94%BE%E7%BD%AEautoptr\"><span class=\"ez-toc-section\" id=\"Item_8_%E7%A6%81%E6%AD%A2%E5%9C%A8%E5%AE%B9%E5%99%A8%E9%87%8C%E6%94%BE%E7%BD%AEauto_ptr\"><\/span>Item 8 \u7981\u6b62\u5728\u5bb9\u5668\u91cc\u653e\u7f6eauto_ptr<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p><code>auto_ptr<\/code>\u5df2\u7ecf\u6210\u4e3a\u5386\u53f2\uff0c\u800c\u539f\u56e0\u5728\u4e8e\u5bb9\u5668\u91cc\u4e0d\u80fd\u653e\u7f6e<code>auto_ptr<\/code>\u3002\u597d\u5427\uff0c\u5728\u6211\u6765\u5f97\u53ca\u719f\u7ec3\u4f7f\u7528<code>auto_ptr<\/code>\u4e4b\u524d\uff0c\u5b83\u5df2\u7ecf\u88ab\u6dd8\u6c70\u4e86\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-9-%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E5%AE%B9%E5%99%A8%E4%B8%AD%E7%9A%84%E5%85%83%E7%B4%A0\"><span class=\"ez-toc-section\" id=\"Item_9_%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E5%AE%B9%E5%99%A8%E4%B8%AD%E7%9A%84%E5%85%83%E7%B4%A0\"><\/span>Item 9 \u5982\u4f55\u5220\u9664\u5bb9\u5668\u4e2d\u7684\u5143\u7d20<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%E4%BD%BF%E7%94%A8%E5%AE%B9%E5%99%A8%E8%87%AA%E5%B8%A6%E7%9A%84%E6%88%90%E5%91%98%E5%87%BD%E6%95%B0remove%E6%88%96%E8%80%85erase\"><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E5%AE%B9%E5%99%A8%E8%87%AA%E5%B8%A6%E7%9A%84%E6%88%90%E5%91%98%E5%87%BD%E6%95%B0remove%E6%88%96%E8%80%85erase\"><\/span>\u4f7f\u7528\u5bb9\u5668\u81ea\u5e26\u7684\u6210\u5458\u51fd\u6570<code>remove<\/code>\u6216\u8005<code>erase<\/code><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%E4%BD%BF%E7%94%A8%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\"><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\"><\/span>\u4f7f\u7528\u7b97\u6cd5\u6a21\u677f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\"><em>\/\/ \u5220\u9664\u6307\u5b9a\u503c<\/em>\n<em>\/\/ for vector, string or deque<\/em>\nc.erase(remove(c.begin(), c.end(), 1963), c.end());\n<em>\/\/ for list<\/em>\nc.remove(1963);\n<em>\/\/ for associate container<\/em>\nc.erase(1963);\n\n<em>\/\/ \u5220\u9664\u6ee1\u8db3\u6761\u4ef6\u7684\u503c<\/em>\n<em>\/\/ for vector, string or deque<\/em>\nbool badValue(int x);\nc.erase(remove_if(c.begin(), c.end(), badValue), c.end());\n<em>\/\/ for list<\/em>\nc.remove_if(badValue);\n<em>\/\/ for associate container<\/em>\nAssocContainer&lt;int&gt; c;\nAssocContainer&lt;int&gt; goodValues;\nremove_copy_if(c.begin(), c.end(), inserter(goodValues, goodValues.end()), badValue);\nc.swap(goodValues);\n<\/code><\/pre>\n\n\n\n<p>\u5173\u8054\u5bb9\u5668\u4e0d\u80fd\u4f7f\u7528\u7b97\u6cd5\u6a21\u677f<code>remove<\/code>\u548c<code>remove_if<\/code>\uff0c\u56e0\u4e3a<code>remove<\/code>\u548c<code>remove_if<\/code>\u4e24\u4e2a\u6a21\u677f\u5e76\u6ca1\u6709\u771f\u6b63\u7684\u4ece\u5bb9\u5668\u4e2d\u5220\u9664\u5143\u7d20\uff0c\u53ea\u662f\u5c06\u8981\u5220\u9664\u7684\u5143\u7d20\u653e\u5728\u4e86\u5bb9\u5668\u7684\u672b\u5c3e\u3002\u4f46\u662f\u5173\u8054\u5bb9\u5668\u91cc\u7684\u5143\u7d20\u662f\u6309\u7167key\u6392\u5e8f\u7684\uff0c\u6240\u4ee5\u8fd9\u79cd\u505a\u6cd5\u4f1a\u635f\u574f\u5173\u8054\u5bb9\u5668\u7684\u5185\u90e8\u7ed3\u6784\u3002\u4ece\u5173\u8054\u5bb9\u5668\u4e2d\u5220\u9664\u5143\u7d20\u53ea\u80fd\u8c03\u7528\u6210\u5458\u51fd\u6570<code>erase<\/code>\u6216\u8005\u7b97\u6cd5\u6a21\u677f<code>remove_copy_if<\/code>\u628a\u9700\u8981\u7559\u4e0b\u7684\u5143\u7d20\u62f7\u8d1d\u5230\u4e00\u4e2a\u65b0\u7684\u5bb9\u5668\u91cc\uff0c\u518d\u8fdb\u884cswap\u3002<\/p>\n\n\n\n<p>\u6211\u4eec\u7ecf\u5e38\u901a\u8fc7\u8fed\u4ee3\u5668\u6765\u904d\u5386\u5bb9\u5668\u4e2d\u7684\u5143\u7d20\uff0c\u5e76\u5728\u8fed\u4ee3\u8fc7\u7a0b\u4e2d\u5220\u9664\u5176\u4e2d\u67d0\u4e9b\u5143\u7d20\uff0c\u4e00\u822c\u6709\u4e24\u79cd\u5199\u6cd5\u6765\u5b9e\u73b0\u8fd9\u4e2a\u64cd\u4f5c\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><code>it = c.erase(it)<\/code><\/li><li><code>c.erase(it++)<\/code><\/li><\/ol>\n\n\n\n<p>\u5199\u6cd52\u6709\u4e2a\u95ee\u9898\uff0c\u90a3\u5c31\u662f\u5bf9\u4e8esequence container\uff0c\u5220\u9664\u4e00\u4e2a\u5143\u7d20\u4f1a\u5bfc\u81f4\u8be5\u5143\u7d20\u540e\u9762\u7684\u6240\u6709\u5143\u7d20\u7684\u8fed\u4ee3\u5668\u5931\u6548\uff0c\u6240\u4ee5<code>it++<\/code>\u64cd\u4f5c\u4ea7\u751f\u7684\u6307\u5411\u4e0b\u4e00\u4e2a\u5143\u7d20\u7684\u8fed\u4ee3\u5668\u5728<code>it<\/code>\u6307\u5411\u7684\u8fd9\u4e2a\u5143\u7d20\u88ab\u5220\u9664\u540e\u5c31\u5931\u6548\u4e86\u3002\u4e3a\u4e86\u907f\u514d\u81ea\u5df1\u4e0d\u7ecf\u610f\u8e29\u5230\u8fd9\u4e2a\u5751\uff0c\u90a3\u5c31\u65e0\u8111\u9009\u62e9\u5199\u6cd51\u5427\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-10-%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84allocator\"><span class=\"ez-toc-section\" id=\"Item_10_%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84allocator\"><\/span>Item 10 \u81ea\u5b9a\u4e49\u7684allocator<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"allocator%E6%9C%80%E5%A5%BD%E5%AE%9E%E7%8E%B0%E4%B8%BA%E7%B1%BB%E6%A8%A1%E6%9D%BF\"><span class=\"ez-toc-section\" id=\"allocator%E6%9C%80%E5%A5%BD%E5%AE%9E%E7%8E%B0%E4%B8%BA%E7%B1%BB%E6%A8%A1%E6%9D%BF\"><\/span>allocator\u6700\u597d\u5b9e\u73b0\u4e3a\u7c7b\u6a21\u677f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"allocator%E9%9C%80%E8%A6%81%E6%8F%90%E4%BE%9B%E4%B8%A4%E4%B8%AAtypedef-allocatortpointer%E5%92%8Callocatortreference\"><span class=\"ez-toc-section\" id=\"allocator%E9%9C%80%E8%A6%81%E6%8F%90%E4%BE%9B%E4%B8%A4%E4%B8%AAtypedef_allocator_pointer%E5%92%8Callocator_reference\"><\/span>allocator\u9700\u8981\u63d0\u4f9b\u4e24\u4e2atypedef&nbsp;<code>allocator&lt;T&gt;::pointer<\/code>\u548c<code>allocator&lt;T&gt;::reference<\/code><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%E5%90%8C%E4%B8%80%E4%B8%AA%E7%B1%BB%E5%9E%8B%E7%9A%84allocator%E5%8F%AA%E8%83%BD%E4%BF%9D%E5%AD%98static%E7%9A%84%E6%95%B0%E6%8D%AE%E8%BF%99%E6%A0%B7%E7%94%B1%E4%B8%8D%E5%90%8Callocator%E5%AF%B9%E8%B1%A1%E5%88%86%E9%85%8D%E5%87%BA%E5%8E%BB%E7%9A%84%E5%86%85%E5%AD%98%E6%89%8D%E5%8F%AF%E4%BB%A5%E7%94%B1%E4%BB%BB%E6%84%8F%E4%B8%80%E4%B8%AAallocator%E5%AF%B9%E8%B1%A1%E5%9B%9E%E6%94%B6\"><span class=\"ez-toc-section\" id=\"%E5%90%8C%E4%B8%80%E4%B8%AA%E7%B1%BB%E5%9E%8B%E7%9A%84allocator%E5%8F%AA%E8%83%BD%E4%BF%9D%E5%AD%98static%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E8%BF%99%E6%A0%B7%E7%94%B1%E4%B8%8D%E5%90%8Callocator%E5%AF%B9%E8%B1%A1%E5%88%86%E9%85%8D%E5%87%BA%E5%8E%BB%E7%9A%84%E5%86%85%E5%AD%98%E6%89%8D%E5%8F%AF%E4%BB%A5%E7%94%B1%E4%BB%BB%E6%84%8F%E4%B8%80%E4%B8%AAallocator%E5%AF%B9%E8%B1%A1%E5%9B%9E%E6%94%B6\"><\/span>\u540c\u4e00\u4e2a\u7c7b\u578b\u7684allocator\u53ea\u80fd\u4fdd\u5b58static\u7684\u6570\u636e\uff0c\u8fd9\u6837\u7531\u4e0d\u540callocator\u5bf9\u8c61\u5206\u914d\u51fa\u53bb\u7684\u5185\u5b58\u624d\u53ef\u4ee5\u7531\u4efb\u610f\u4e00\u4e2aallocator\u5bf9\u8c61\u56de\u6536<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"allocator%E7%9A%84%E6%8E%A5%E5%8F%A3%E6%98%AF%E5%92%8Cnew%E4%B8%8D%E4%B8%80%E6%A0%B7%E7%9A%84\"><span class=\"ez-toc-section\" id=\"allocator%E7%9A%84%E6%8E%A5%E5%8F%A3%E6%98%AF%E5%92%8Cnew%E4%B8%8D%E4%B8%80%E6%A0%B7%E7%9A%84%EF%BC%9A\"><\/span>allocator\u7684\u63a5\u53e3\u662f\u548cnew\u4e0d\u4e00\u6837\u7684\uff1a<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">void* operator new(size_t bytes);\npointer allocator&lt;T&gt;::allocate(size_type numObjects);\n<\/code><\/pre>\n\n\n\n<p>\u867d\u7136allocate\u7684\u8fd4\u56de\u503c\u662f<code>T*<\/code>\uff0c\u4f46\u662f\u8fd4\u56de\u7684\u8fd9\u5757\u5185\u5b58\u91cc\u53ef\u80fd\u5e76\u6ca1\u6709\u53bb\u521d\u59cb\u5316\u8fd9\u4e9b\u5bf9\u8c61\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"allocator%E5%86%85%E9%83%A8%E9%9C%80%E8%A6%81%E6%8F%90%E4%BE%9B%E4%B8%80%E4%B8%AArebind%E7%9A%84%E6%A8%A1%E6%9D%BF%E5%9B%A0%E4%B8%BAstl%E9%87%8C%E7%9A%84%E5%AE%B9%E5%99%A8%E5%9F%BA%E6%9C%AC%E4%B8%8D%E4%BC%9A%E8%B0%83%E7%94%A8%E4%BC%A0%E5%85%A5%E7%9A%84allocatort%E6%9D%A5%E7%94%B3%E8%AF%B7%E5%86%85%E5%AD%98%E8%80%8C%E6%98%AF%E8%B0%83%E7%94%A8allocatoru%E6%9D%A5%E7%94%B3%E8%AF%B7%E5%86%85%E5%AD%98u%E8%A1%A8%E7%A4%BA%E5%AE%B9%E5%99%A8%E7%9C%9F%E6%AD%A3%E9%9C%80%E8%A6%81%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E7%B1%BB%E5%9E%8B%E6%AF%94%E5%A6%82%E5%AF%B9%E4%BA%8Elistu%E5%B0%B1%E6%98%AF%E8%8A%82%E7%82%B9\"><span class=\"ez-toc-section\" id=\"allocator%E5%86%85%E9%83%A8%E9%9C%80%E8%A6%81%E6%8F%90%E4%BE%9B%E4%B8%80%E4%B8%AArebind%E7%9A%84%E6%A8%A1%E6%9D%BF%EF%BC%8C%E5%9B%A0%E4%B8%BASTL%E9%87%8C%E7%9A%84%E5%AE%B9%E5%99%A8%E5%9F%BA%E6%9C%AC%E4%B8%8D%E4%BC%9A%E8%B0%83%E7%94%A8%E4%BC%A0%E5%85%A5%E7%9A%84allocator%E6%9D%A5%E7%94%B3%E8%AF%B7%E5%86%85%E5%AD%98%EF%BC%8C%E8%80%8C%E6%98%AF%E8%B0%83%E7%94%A8allocator%E6%9D%A5%E7%94%B3%E8%AF%B7%E5%86%85%E5%AD%98%EF%BC%8CU%E8%A1%A8%E7%A4%BA%E5%AE%B9%E5%99%A8%E7%9C%9F%E6%AD%A3%E9%9C%80%E8%A6%81%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E7%B1%BB%E5%9E%8B%EF%BC%8C%E6%AF%94%E5%A6%82%E5%AF%B9%E4%BA%8Elist%EF%BC%8CU%E5%B0%B1%E6%98%AF%E8%8A%82%E7%82%B9%E3%80%82\"><\/span>allocator\u5185\u90e8\u9700\u8981\u63d0\u4f9b\u4e00\u4e2a<code>rebind<\/code>\u7684\u6a21\u677f\uff0c\u56e0\u4e3aSTL\u91cc\u7684\u5bb9\u5668\u57fa\u672c\u4e0d\u4f1a\u8c03\u7528\u4f20\u5165\u7684<code>allocator&lt;T&gt;<\/code>\u6765\u7533\u8bf7\u5185\u5b58\uff0c\u800c\u662f\u8c03\u7528<code>allocator&lt;U&gt;<\/code>\u6765\u7533\u8bf7\u5185\u5b58\uff0c<code>U<\/code>\u8868\u793a\u5bb9\u5668\u771f\u6b63\u9700\u8981\u7684\u6570\u636e\u7ed3\u6784\u7c7b\u578b\uff0c\u6bd4\u5982\u5bf9\u4e8elist\uff0c<code>U<\/code>\u5c31\u662f\u8282\u70b9\u3002<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">template&lt;typename T&gt;\nclass allocator {\npublic:\n\t\n  template&lt;typename U&gt;\n  struct rebind {\n    typedef allocator&lt;U&gt;other;\n  };\n};\n<\/code><\/pre>\n\n\n\n<p>\u8fd9\u4e2arebind\u5b58\u5728\u7684\u539f\u56e0\u662fstl\u5e76\u4e0d\u77e5\u9053\u5b58\u5165\u7684allocator\u7684\u6a21\u677f\u540d\uff0c\u4f46\u662fstl\u53c8\u60f3\u8981\u7528\u76f8\u540c\u7684\u5185\u5b58\u5206\u914d\u7b56\u7565\u53bb\u5206\u914d\u53bb\u5176\u4ed6\u7c7b\u578b\u7684\u6570\u636e\u7ed3\u6784\uff0c\u4e8e\u662fstl\u5c31\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2arebind\u6a21\u677f\u6765\u5f15\u7528\u4f20\u5165\u7684allocator\u7684\u6a21\u677f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"allocator%E7%9A%84%E7%A4%BA%E4%BE%8B%E5%AE%9E%E7%8E%B0\"><span class=\"ez-toc-section\" id=\"allocator%E7%9A%84%E7%A4%BA%E4%BE%8B%E5%AE%9E%E7%8E%B0\"><\/span>allocator\u7684\u793a\u4f8b\u5b9e\u73b0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li><a href=\"http:\/\/www.josuttis.com\/cppcode\/allocator.html\">http:\/\/www.josuttis.com\/cppcode\/allocator.html<\/a><\/li><li><a href=\"https:\/\/blog.csdn.net\/arduousbonze\/article\/details\/3624177\">https:\/\/blog.csdn.net\/arduousbonze\/article\/details\/3624177<\/a><\/li><\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-11-%E8%87%AA%E5%AE%9A%E4%B9%89allocator%E7%9A%84%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\"><span class=\"ez-toc-section\" id=\"Item_11_%E8%87%AA%E5%AE%9A%E4%B9%89allocator%E7%9A%84%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\"><\/span>Item 11 \u81ea\u5b9a\u4e49allocator\u7684\u9002\u7528\u573a\u666f<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%E8%87%AA%E5%B7%B1%E6%9C%89%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86%E7%AE%97%E6%B3%95\"><span class=\"ez-toc-section\" id=\"%E8%87%AA%E5%B7%B1%E6%9C%89%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86%E7%AE%97%E6%B3%95%EF%BC%9B\"><\/span>\u81ea\u5df1\u6709\u66f4\u9ad8\u6548\u7684\u5185\u5b58\u7ba1\u7406\u7b97\u6cd5\uff1b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%E5%AF%B9allocator%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%A7%E6%B2%A1%E6%9C%89%E8%A6%81%E6%B1%82%E8%80%8C%E9%BB%98%E8%AE%A4%E7%9A%84allocator%E6%9C%89%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%96%B9%E9%9D%A2%E7%9A%84%E5%BC%80%E9%94%80\"><span class=\"ez-toc-section\" id=\"%E5%AF%B9allocator%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%A7%E6%B2%A1%E6%9C%89%E8%A6%81%E6%B1%82%EF%BC%8C%E8%80%8C%E9%BB%98%E8%AE%A4%E7%9A%84allocator%E6%9C%89%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%96%B9%E9%9D%A2%E7%9A%84%E5%BC%80%E9%94%80%EF%BC%9B\"><\/span>\u5bf9allocator\u7684\u7ebf\u7a0b\u5b89\u5168\u6027\u6ca1\u6709\u8981\u6c42\uff0c\u800c\u9ed8\u8ba4\u7684allocator\u6709\u7ebf\u7a0b\u5b89\u5168\u65b9\u9762\u7684\u5f00\u9500\uff1b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89allocator%E4%BB%8E%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98%E4%B8%AD%E7%94%B3%E8%AF%B7%E7%A9%BA%E9%97%B4\"><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89allocator%E4%BB%8E%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98%E4%B8%AD%E7%94%B3%E8%AF%B7%E7%A9%BA%E9%97%B4%EF%BC%9B\"><\/span>\u4f7f\u7528\u81ea\u5b9a\u4e49allocator\u4ece\u5171\u4eab\u5185\u5b58\u4e2d\u7533\u8bf7\u7a7a\u95f4\uff1b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">void *pVecotrMemory = mallocShared(sizeof(SharedDoubleVec));\nSharedDoubleVec *pv = new(pVectorMemory)SharedDoubleVec;\n\n...\npv-&gt;~SharedDoubleVec();\nfreeShared(pVectorMemory);\n<\/code><\/pre>\n\n\n\n<p>\u5bb9\u5668\u7684\u6a21\u677f\u53c2\u6570\u91cc\u6307\u5b9a\u7684allocator\u53ea\u662f\u7528\u6765\u5728\u5bb9\u5668\u5185\u90e8\u52a8\u6001\u7533\u8bf7\u5185\u5b58\u7684\uff0c\u5bb9\u5668\u672c\u8eab\u7684\u4e00\u4e9b\u6210\u5458\u53d8\u91cf\u5e76\u4e0d\u662f\u7528\u8fd9\u4e2aallocator\u7533\u8bf7\u7684\uff0c\u56e0\u6b64\u9700\u8981\u5728\u4e00\u5f00\u59cb\u521b\u5efa\u8fd9\u4e2a\u5bb9\u5668\u7684\u65f6\u5019\uff0c\u5148\u6309\u7167\u4e0a\u9762\u7684\u6a21\u5f0f\u5148\u7533\u8bf7\u5171\u4eab\u5185\u5b58\uff0c\u7136\u540e\u7528<em>placement new<\/em>\u8ba9\u5bb9\u5668\u5728\u7533\u8bf7\u4e0b\u6765\u7684\u8fd9\u5757\u5171\u4eab\u5185\u5b58\u4e0a\u6267\u884c\u6784\u9020\u51fd\u6570\uff0c\u8fd9\u6837\u521b\u5efa\u7684\u5bb9\u5668\u624d\u662f\u653e\u5728\u5171\u4eab\u5185\u5b58\u91cc\u7684\u3002\u5728\u91ca\u653e\u5bb9\u5668\u5360\u7528\u7684\u5171\u4eab\u5185\u5b58\u65f6\uff0c\u4e5f\u9700\u8981\u624b\u52a8\u8c03\u7528\u5bb9\u5668\u7684\u6790\u6784\u51fd\u6570\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89allocator%E4%BB%8E%E4%B8%8D%E5%90%8C%E7%9A%84%E5%A0%86%E4%B8%AD%E7%94%B3%E8%AF%B7%E7%A9%BA%E9%97%B4\"><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89allocator%E4%BB%8E%E4%B8%8D%E5%90%8C%E7%9A%84%E5%A0%86%E4%B8%AD%E7%94%B3%E8%AF%B7%E7%A9%BA%E9%97%B4%EF%BC%9B\"><\/span>\u4f7f\u7528\u81ea\u5b9a\u4e49allocator\u4ece\u4e0d\u540c\u7684\u5806\u4e2d\u7533\u8bf7\u7a7a\u95f4\uff1b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-12-stl%E7%9A%84%E5%AE%B9%E5%99%A8%E4%B8%8D%E4%BF%9D%E8%AF%81%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8\"><span class=\"ez-toc-section\" id=\"Item_12_STL%E7%9A%84%E5%AE%B9%E5%99%A8%E4%B8%8D%E4%BF%9D%E8%AF%81%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8\"><\/span>Item 12 STL\u7684\u5bb9\u5668\u4e0d\u4fdd\u8bc1\u7ebf\u7a0b\u5b89\u5168<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-13-%E5%B0%BD%E9%87%8F%E4%BD%BF%E7%94%A8vector%E5%92%8Cstring%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BD%BF%E7%94%A8c%E9%87%8C%E9%9D%A2%E7%9A%84%E6%95%B0%E7%BB%84\"><span class=\"ez-toc-section\" id=\"Item_13_%E5%B0%BD%E9%87%8F%E4%BD%BF%E7%94%A8vector%E5%92%8Cstring%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BD%BF%E7%94%A8C%E9%87%8C%E9%9D%A2%E7%9A%84%E6%95%B0%E7%BB%84\"><\/span>Item 13 \u5c3d\u91cf\u4f7f\u7528vector\u548cstring\u800c\u4e0d\u662f\u4f7f\u7528C\u91cc\u9762\u7684\u6570\u7ec4<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u4f7f\u7528string\u65f6\uff0c\u6ce8\u610fstring\u7684\u5b9e\u73b0\u4f7f\u7528\u4e86\u5f15\u7528\u8ba1\u6570\uff0c\u5728\u5e76\u884c\u73af\u5883\u4e0b\u53ef\u80fd\u8fd9\u79cd\u6027\u80fd\u4f18\u5316\u53cd\u800c\u9002\u5f97\u5176\u53cd\uff0c\u9700\u8981\u67e5\u9605\u5b98\u65b9\u6587\u6863\u770b\u662f\u5426\u80fd\u591f\u5173\u95ed\u5f15\u7528\u8ba1\u6570\u8fd9\u79cdfeature\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-14-%E4%BD%BF%E7%94%A8reserve%E5%87%BD%E6%95%B0%E6%9D%A5%E6%8F%90%E5%89%8D%E8%AE%BE%E7%BD%AE%E5%AE%B9%E9%87%8F%E9%81%BF%E5%85%8D%E5%AE%B9%E5%99%A8%E6%89%A9%E5%BC%A0%E7%9A%84%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84reallocation%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%80%A7%E8%83%BD%E6%8D%9F%E8%80%97\"><span class=\"ez-toc-section\" id=\"Item_14_%E4%BD%BF%E7%94%A8reserve%E5%87%BD%E6%95%B0%E6%9D%A5%E6%8F%90%E5%89%8D%E8%AE%BE%E7%BD%AE%E5%AE%B9%E9%87%8F%EF%BC%8C%E9%81%BF%E5%85%8D%E5%AE%B9%E5%99%A8%E6%89%A9%E5%BC%A0%E7%9A%84%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84reallocation%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%80%A7%E8%83%BD%E6%8D%9F%E8%80%97\"><\/span>Item 14 \u4f7f\u7528reserve\u51fd\u6570\u6765\u63d0\u524d\u8bbe\u7f6e\u5bb9\u91cf\uff0c\u907f\u514d\u5bb9\u5668\u6269\u5f20\u7684\u8fc7\u7a0b\u4e2d\u7684reallocation\u5e26\u6765\u7684\u6027\u80fd\u635f\u8017<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-15-%E4%BB%8B%E7%BB%8D%E4%BA%86%E5%9B%9B%E7%A7%8Dstring%E5%AE%9E%E7%8E%B0%E7%9A%84%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80\"><span class=\"ez-toc-section\" id=\"Item_15_%E4%BB%8B%E7%BB%8D%E4%BA%86%E5%9B%9B%E7%A7%8Dstring%E5%AE%9E%E7%8E%B0%E7%9A%84%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80\"><\/span>Item 15 \u4ecb\u7ecd\u4e86\u56db\u79cdstring\u5b9e\u73b0\u7684\u5185\u5b58\u5e03\u5c40<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-16-%E6%8A%8Astring%E5%92%8Cvector%E9%87%8C%E7%9A%84%E6%95%B0%E6%8D%AE%E4%BC%A0%E7%BB%99c%E9%A3%8E%E6%A0%BC%E7%9A%84%E6%8E%A5%E5%8F%A3\"><span class=\"ez-toc-section\" id=\"Item_16_%E6%8A%8Astring%E5%92%8Cvector%E9%87%8C%E7%9A%84%E6%95%B0%E6%8D%AE%E4%BC%A0%E7%BB%99C%E9%A3%8E%E6%A0%BC%E7%9A%84%E6%8E%A5%E5%8F%A3\"><\/span>Item 16 \u628astring\u548cvector\u91cc\u7684\u6570\u636e\u4f20\u7ed9C\u98ce\u683c\u7684\u63a5\u53e3<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-17-%E4%BD%BF%E7%94%A8swap%E6%9D%A5%E6%B6%88%E9%99%A4capacity%E5%8D%A0%E6%8D%AE%E7%9A%84%E5%A4%9A%E4%BD%99%E7%A9%BA%E9%97%B4\"><span class=\"ez-toc-section\" id=\"Item_17_%E4%BD%BF%E7%94%A8swap%E6%9D%A5%E6%B6%88%E9%99%A4capacity%E5%8D%A0%E6%8D%AE%E7%9A%84%E5%A4%9A%E4%BD%99%E7%A9%BA%E9%97%B4\"><\/span>Item 17 \u4f7f\u7528swap\u6765\u6d88\u9664capacity\u5360\u636e\u7684\u591a\u4f59\u7a7a\u95f4<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u5176\u5b9e\u5c31\u662f\u901a\u8fc7range constructor\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u5bb9\u5668\uff0c\u7136\u540eswap\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-18-%E9%81%BF%E5%85%8D%E4%BD%BF%E7%94%A8vectorbool\"><span class=\"ez-toc-section\" id=\"Item_18_%E9%81%BF%E5%85%8D%E4%BD%BF%E7%94%A8vector\"><\/span>Item 18 \u907f\u514d\u4f7f\u7528vector<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p id=\"vectorbool%E5%B9%B6%E4%B8%8D%E6%98%AF%E7%94%A8vector%E6%9D%A5%E5%AD%98%E7%9A%84boolvectorbool%E4%B9%9F%E5%B9%B6%E4%B8%8D%E6%98%AF%E5%AE%B9%E5%99%A8vectorbool%E9%80%9A%E8%BF%87%E5%8F%96%E5%87%BA%E6%9D%A5%E7%9A%84%E5%AF%B9%E8%B1%A1%E4%B8%8D%E6%98%AFbool%E8%80%8C%E6%98%AF%E4%B8%80%E4%B8%AA%E4%BB%A3%E7%90%86%E8%AF%A5%E4%BB%A3%E7%90%86%E8%A1%A8%E7%8E%B0%E7%9A%84%E5%83%8Fbool%E6%9C%80%E7%9B%B4%E6%8E%A5%E7%9A%84%E8%AF%A5%E4%B8%8B%E9%9D%A2%E7%9A%84%E4%BB%A3%E7%A0%81%E9%80%9A%E4%B8%8D%E8%BF%87%E7%BC%96%E8%AF%91\"><code>vector&lt;bool&gt;<\/code>\u5e76\u4e0d\u662f\u7528vector\u6765\u5b58\u7684bool\uff0c<code>vector&lt;bool&gt;<\/code>\u4e5f\u5e76\u4e0d\u662f\u5bb9\u5668\uff0c<code>vector&lt;bool&gt;<\/code>\u901a\u8fc7<code>[]<\/code>\u53d6\u51fa\u6765\u7684\u5bf9\u8c61\u4e0d\u662fbool\uff0c\u800c\u662f\u4e00\u4e2a\u4ee3\u7406\uff0c\u8be5\u4ee3\u7406\u8868\u73b0\u7684\u50cfbool\u3002\u6700\u76f4\u63a5\u7684\uff0c\u8be5\u4e0b\u9762\u7684\u4ee3\u7801\u901a\u4e0d\u8fc7\u7f16\u8bd1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">vector&lt;bool&gt; v;\nbool *pb = &amp;v[0];\n<\/code><\/pre>\n\n\n\n<p id=\"%E5%8F%AF%E4%BB%A5%E8%80%83%E8%99%91%E4%BD%BF%E7%94%A8dequebool%E5%92%8Cbitset%E4%BB%A3%E6%9B%BF\">\u53ef\u4ee5\u8003\u8651\u4f7f\u7528<code>deque&lt;bool&gt;<\/code>\u548cbitset\u4ee3\u66ff\uff1b<\/p>\n\n\n\n<p id=\"%E6%87%82%E4%BD%8D%E8%BF%90%E7%AE%97%E7%9A%84%E5%90%8C%E5%AD%A6%E6%8C%89%E8%87%AA%E5%B7%B1%E7%9A%84%E9%9C%80%E6%B1%82%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%B0%B1%E5%A5%BD%E4%BA%86\">\u61c2\u4f4d\u8fd0\u7b97\u7684\u540c\u5b66\u6309\u81ea\u5df1\u7684\u9700\u6c42\u5b9e\u73b0\u4e00\u4e2a\u6570\u636e\u7ed3\u6784\u5c31\u597d\u4e86\uff1b<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-19-equality-and-equivalence\"><span class=\"ez-toc-section\" id=\"Item_19_Equality_and_Equivalence\"><\/span>Item 19 Equality and Equivalence<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u7b97\u6cd5\u6a21\u677f<code>find<\/code>\u4f7f\u7528\u7684\u662fequality\uff0c\u5373\u7528<code>operator ==<\/code>\u6765\u8fdb\u884c\u6bd4\u8f83\uff0c\u800c<code>set<\/code>\u4f7f\u7528\u7684\u662fequivalence\uff0c\u7528\u7684<code>operator &lt;<\/code>\u6765\u8fdb\u884c\u6bd4\u8f83\uff0cequivalence\u7b49\u4ef7\u4e8e<code>!(w1&lt;w2)&amp;&amp;!(w2&lt;w1)<\/code>\u3002\u5173\u8054\u5bb9\u5668\u4f7f\u7528\u7684\u90fd\u662fequivalence\u3002<br>\u5f80\u5173\u8054\u5bb9\u5668\u91cc\u63d2\u5165\u5143\u7d20\uff0c\u662f\u7528\u7684equivalence\u5224\u65ad\u91cc\u9762\u662f\u5426\u5df2\u7ecf\u6709\u8fd9\u4e2a\u5143\u7d20\u4e86\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u7684equality\u3002\u5173\u8054\u5bb9\u5668\u9700\u8981\u4e00\u4e2aless\u51fd\u6570\u6765\u505a\u987a\u5e8f\u7684\u6bd4\u8f83\uff0c\u4f46\u662f\u6709\u4e86\u8fd9\u4e2aless\u51fd\u6570\u5c31\u4e0d\u518d\u9700\u8981equality\u4e86\uff0c\u56e0\u4e3a\u5982\u679c\u5f15\u5165equality\uff0c\u90a3\u4e48\u5728<code>find<\/code>\u548c<code>insert<\/code>\u7684\u65f6\u5019\u5c31\u5e94\u8be5\u4f7f\u7528equality\u6765\u8fdb\u884c\u5224\u65ad\uff0c\u6bd4\u5982\u5bf9\u4e8eset\uff0c\u53ef\u80fd\u5bfc\u81f4\u63d2\u5165\u4e24\u4e2aequality\u4e0a\u4e0d\u7b49\uff0c\u4f46\u662fequivalence\u4e0a\u662f\u76f8\u7b49\u7684\u5143\u7d20\uff0c\u8fd9\u4e24\u4e2a\u5143\u7d20\u5728set\u91cc\u7684\u987a\u5e8f\u662f\u4e0d\u5b9a\u7684\uff0c\u8fd9\u4f7f\u5f97set\u91cc\u7684\u5143\u7d20\u4e0d\u518d\u5177\u6709\u56fa\u5b9a\u7684\u987a\u5e8f\u3002<\/p>\n\n\n\n<p>\u6ce8\u610f\uff1a\u5173\u8054\u5bb9\u5668\u7684\u6210\u5458\u51fd\u6570\u4e5f\u662f\u4f7f\u7528\u7684equivalence\uff0c\u800c\u7b97\u6cd5\u6a21\u677f\u4f7f\u7528\u7684equality\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-20-%E8%AE%B0%E5%BE%97%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E6%8C%87%E5%AE%9A%E5%85%B3%E8%81%94%E5%AE%B9%E5%99%A8%E7%9A%84%E6%AF%94%E8%BE%83%E5%87%BD%E6%95%B0%E6%9D%A5%E8%87%AA%E5%AE%9A%E4%B9%89%E5%85%83%E7%B4%A0%E7%9A%84%E6%8E%92%E5%BA%8F%E8%A7%84%E5%88%99\"><span class=\"ez-toc-section\" id=\"Item_20_%E8%AE%B0%E5%BE%97%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E6%8C%87%E5%AE%9A%E5%85%B3%E8%81%94%E5%AE%B9%E5%99%A8%E7%9A%84%E6%AF%94%E8%BE%83%E5%87%BD%E6%95%B0%E6%9D%A5%E8%87%AA%E5%AE%9A%E4%B9%89%E5%85%83%E7%B4%A0%E7%9A%84%E6%8E%92%E5%BA%8F%E8%A7%84%E5%88%99\"><\/span>Item 20 \u8bb0\u5f97\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a\u5173\u8054\u5bb9\u5668\u7684\u6bd4\u8f83\u51fd\u6570\u6765\u81ea\u5b9a\u4e49\u5143\u7d20\u7684\u6392\u5e8f\u89c4\u5219<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">template&lt; class Key, class Compare = std::less&lt;Key&gt;, class Allocator = std::allocator&lt;Key&gt; &gt; class set;\n<\/code><\/pre>\n\n\n\n<p><code>Compare<\/code>\u5fc5\u987b\u662f\u4e2a\u7c7b\u578b\uff0c\u56e0\u6b64\u8fd9\u91cc\u4e0d\u80fd\u4f20\u51fd\u6570\u6307\u9488\u4e86\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-21-%E5%85%B3%E8%81%94%E5%AE%B9%E5%99%A8%E7%9A%84%E6%AF%94%E8%BE%83%E5%87%BD%E6%95%B0%E5%BF%85%E9%A1%BB%E6%98%AF%E4%B8%A5%E6%A0%BC%E7%9A%84%E5%A4%A7%E4%BA%8E%E6%88%96%E5%B0%8F%E4%BA%8E\"><span class=\"ez-toc-section\" id=\"Item_21_%E5%85%B3%E8%81%94%E5%AE%B9%E5%99%A8%E7%9A%84%E6%AF%94%E8%BE%83%E5%87%BD%E6%95%B0%E5%BF%85%E9%A1%BB%E6%98%AF%E4%B8%A5%E6%A0%BC%E7%9A%84%E5%A4%A7%E4%BA%8E%E6%88%96%E5%B0%8F%E4%BA%8E\"><\/span>Item 21 \u5173\u8054\u5bb9\u5668\u7684\u6bd4\u8f83\u51fd\u6570\u5fc5\u987b\u662f\u4e25\u683c\u7684\u5927\u4e8e\u6216\u5c0f\u4e8e<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u5173\u8054\u5bb9\u5668\u7684\u6bd4\u8f83\u51fd\u6570\u5bf9\u4e8e\u76f8\u540c(equality)\u7684\u4e24\u4e2a\u503c\u5fc5\u987b\u8fd4\u56defalse\uff0c\u5426\u5219\u6309\u7167equivalence\u4e24\u4e2aequality\u610f\u4e49\u4e0a\u76f8\u7b49\u7684\u5143\u7d20\u5c31\u4f1a\u88ab\u5224\u5b9a\u4e3a\u4e0d\u60f3\u7b49\uff0c\u8fd9\u6837set\u8fd9\u79cd\u5bb9\u5668\u91cc\u5c31\u4f1a\u542b\u6709\u76f8\u540c\u7684\u5143\u7d20\u3002<br>\u800c\u5bf9\u4e8emultiset\uff0cmultimap\u8fd9\u79cd\u5bb9\u5668\u6765\u8bf4\uff0c\u5982\u679c\u4f20\u5165\u7684\u6bd4\u8f83\u51fd\u6570\u4e0d\u662f\u4e25\u683c\u610f\u4e49\u4e0a\u7684\u5927\u4e8e\u3001\u5c0f\u4e8e\uff0c\u90a3\u4e48\u7531\u4e8e<code>equal_range<\/code>\u51fd\u6570\u4e5f\u662f\u6309\u7167equivalence\u8fdb\u884c\u67e5\u627e\u7684\uff0c\u8fd9\u4e5f\u4f1a\u5bfc\u81f4multiset\/multimap\u91ccequality\u610f\u4e49\u4e0a\u76f8\u7b49\u7684\u5143\u7d20\u4e0d\u4f1a\u8fd4\u56de\u5728\u540c\u4e00\u4e2a<code>equal_range<\/code>\u7684\u7ed3\u679c\u91cc\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-22-%E4%B8%8D%E8%A6%81%E4%BF%AE%E6%94%B9set%E5%92%8Cmultiset%E9%87%8C%E7%9A%84key\"><span class=\"ez-toc-section\" id=\"Item_22_%E4%B8%8D%E8%A6%81%E4%BF%AE%E6%94%B9set%E5%92%8Cmultiset%E9%87%8C%E7%9A%84key\"><\/span>Item 22 \u4e0d\u8981\u4fee\u6539set\u548cmultiset\u91cc\u7684key<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>map\u548cmultimap\u7684\u6a21\u677f\u7c7b\u578b\u91cc\u7684key\u5176\u5b9e\u662fconst key\u7c7b\u578b\uff0c\u4f46\u662fset\u3001multiset\u6a21\u677f\u7684\u7c7b\u578b\u53c2\u6570\u662f\u6ca1\u6709const\u4fee\u9970\u7b26\u7684\uff0c\u6240\u4ee5set\u3001multiset\u91cc\u7684\u5143\u7d20\u53ef\u80fd\u662f\u53ef\u4ee5\u6539\u53d8\u7684\uff0c\u8fd9\u4e2a\u8981\u770b\u5177\u4f53\u7684stl\u5e93\u7684\u5b9e\u73b0\u662f\u5426\u5141\u8bb8\u4f60\u6539\u53d8\u3002\u6bd4\u5982\u6211\u6d4b\u8bd5\u7684g++ 9.3\u662f\u4e0d\u5141\u8bb8\u6539\u53d8\u8fd9\u4e2aset\uff0cmultiset\u91cc\u7684\u5143\u7d20\u7684\uff0c\u56e0\u4e3a\u8fd9\u4e2a\u7248\u672c\u7684set\u3001multiset\u7684iterator\u662f\u4e00\u4e2aconst\u7684iterator\uff0c\u4e0d\u5141\u8bb8\u4f60\u53bb\u6539\u53d8\u3002\u7531\u4e8eset\u3001multiset\u91cc\u7684\u5143\u7d20\u662f\u6309less\u51fd\u6570\u8fdb\u884c\u6bd4\u8f83\u7684\uff0c\u5982\u679c\u6211\u4eec\u4fee\u6539\u5143\u7d20\u7684\u5176\u4ed6\u90e8\u5206\u800c\u4e0d\u4fee\u6539\u7528\u4e8eless\u51fd\u6570\u6bd4\u8f83\u7684\u90e8\u5206\uff0c\u90a3\u4e48\u5176\u5b9e\u4e5f\u662fok\u7684\uff0c\u6211\u4eec\u53c2\u8003\u4e0b\u9762\u7684\u4ee3\u7801\u5373\u53ef\uff0c\u901a\u8fc7\u5f3a\u5236\u8f6c\u6362\u8f6c\u4e3a\u5f15\u7528\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">if (i != se.end()) {\n\tconst_cast&lt;Employee&amp;&gt;(*i).setTitle(\"Coporate Deity\");\n}\n<\/code><\/pre>\n\n\n\n<p>\u6ce8\u610f\u4e00\u5b9a\u8981\u5f3a\u5236\u8f6c\u4e3a\u5f15\u7528\uff0c\u800c\u4e0d\u662f\u5f3a\u5236\u8f6c\u4e3a\u5bf9\u5e94\u7684Employee\u7c7b\u578b\uff0c\u56e0\u4e3a\u90a3\u6837\u4f1a\u4e3a\u4f60\u751f\u6210\u4e00\u4e2a\u4e34\u65f6\u53d8\u91cf\uff0c\u6ca1\u6709\u8fbe\u5230\u4fee\u6539set\u3001multiset\u4e2d\u5143\u7d20\u7684\u6548\u679c\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-23-%E5%A6%82%E6%9E%9C%E5%8F%AA%E6%98%AF%E6%9F%A5%E8%AF%A2%E6%9C%89%E5%BA%8F%E7%9A%84%E6%95%B0%E7%BB%84%E5%8F%AF%E8%83%BD%E6%AF%94%E5%85%B3%E8%81%94%E5%AE%B9%E5%99%A8%E6%9B%B4%E9%AB%98%E6%95%88\"><span class=\"ez-toc-section\" id=\"Item_23_%E5%A6%82%E6%9E%9C%E5%8F%AA%E6%98%AF%E6%9F%A5%E8%AF%A2%E6%9C%89%E5%BA%8F%E7%9A%84%E6%95%B0%E7%BB%84%E5%8F%AF%E8%83%BD%E6%AF%94%E5%85%B3%E8%81%94%E5%AE%B9%E5%99%A8%E6%9B%B4%E9%AB%98%E6%95%88\"><\/span>Item 23 \u5982\u679c\u53ea\u662f\u67e5\u8be2\u6709\u5e8f\u7684\u6570\u7ec4\u53ef\u80fd\u6bd4\u5173\u8054\u5bb9\u5668\u66f4\u9ad8\u6548<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u56e0\u4e3a\u6570\u7ec4\u4e0d\u7528\u5b58\u8282\u70b9\u6307\u9488\uff0c\u9700\u8981\u5360\u7528\u7684\u5185\u5b58\u66f4\u5c11\uff0c\u5185\u5b58\u5c40\u90e8\u6027\u66f4\u597d\uff0c\u53ef\u80fd\u9020\u6210\u7684page fault\u66f4\u5c11\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-24-map%E7%9A%84%E4%B8%89%E4%B8%AA%E5%87%BD%E6%95%B0insert%E5%92%8Cemplace\"><span class=\"ez-toc-section\" id=\"Item_24_map%E7%9A%84%E4%B8%89%E4%B8%AA%E5%87%BD%E6%95%B0%E3%80%81insert%E5%92%8Cemplace\"><\/span>Item 24 map\u7684\u4e09\u4e2a\u51fd\u6570[]\u3001insert\u548cemplace<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u4e66\u91cc\u9762\u7684\u5185\u5bb9\u6709\u4e9b\u8fc7\u65f6\uff0c\u6ca1\u6709\u63d0\u53ca<code>emplace<\/code>\u51fd\u6570\uff0c\u4f46\u662f<a href=\"https:\/\/stackoverflow.com\/a\/17174245\/5357784\">Stackoverflow<\/a>\u4e0a\u9762\u5df2\u7ecf\u6709\u4e86\u5145\u5206\u7684\u8ba8\u8bba\u3002<\/p>\n\n\n\n<p>\u9996\u5148\u662f\u529f\u80fd\u4e0a\u7684\u5dee\u522b\uff1a<\/p>\n\n\n\n<p id=\"%E8%A6%81%E6%B1%82value%E6%98%AF%E6%9C%89%E9%BB%98%E8%AE%A4%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%E7%9A%84\"><code>[]<\/code>\u8981\u6c42value\u662f\u6709\u9ed8\u8ba4\u6784\u9020\u51fd\u6570\u7684<\/p>\n\n\n\n<p id=\"%E5%8F%AF%E4%BB%A5%E6%9B%B4%E6%96%B0key%E5%AF%B9%E5%BA%94%E7%9A%84value%E8%80%8Cinsert%E5%92%8Cemplace%E4%B8%8D%E5%8F%AF%E4%BB%A5\"><code>[]<\/code>\u53ef\u4ee5\u66f4\u65b0key\u5bf9\u5e94\u7684value\uff0c\u800c<code>insert<\/code>\u548c<code>emplace<\/code>\u4e0d\u53ef\u4ee5<\/p>\n\n\n\n<p>\u5176\u6b21\u662f\u6027\u80fd\u7684\u5dee\u522b\uff1a<\/p>\n\n\n\n<p id=\"%E5%9C%A8%E8%BF%9B%E8%A1%8C%E6%8F%92%E5%85%A5%E6%93%8D%E4%BD%9C%E6%97%B6%E6%8C%89%E4%B9%A6%E4%B8%AD%E6%89%80%E8%BF%B0%E7%AD%89%E4%BB%B7%E4%BA%8E%E4%BB%A5%E4%B8%8B%E6%93%8D%E4%BD%9C\">\u5728\u8fdb\u884c\u63d2\u5165\u64cd\u4f5c\u65f6\uff0c\u6309\u4e66\u4e2d\u6240\u8ff0<code>[]<\/code>\u7b49\u4ef7\u4e8e\u4ee5\u4e0b\u64cd\u4f5c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">typedef map&lt;int, Widget&gt; IntWidgetMap;\npair&lt;IntWidgetMap::iterator, bool&gt; result = m.insert(IntWidgetMap::value_type(1, Widget()));\nresult.first-&gt;second = 1.50;\n<\/code><\/pre>\n\n\n\n<p>\u663e\u7136<code>[]<\/code>\u6bd4<code>insert<\/code>\u51fd\u6570\u591a\u4e86\u4e00\u4e2avalue\u7684\u8d4b\u503c\u64cd\u4f5c\uff1b\u4f46\u5728c++11\u91cc\uff0c\u8fd9\u6837\u5176\u5b9e\u4e5f\u4e0d\u9ad8\u6548\uff0c\u8981\u7528<code>emplace<\/code>\u641e\u5b8c\u7f8e\u8f6c\u53d1\u624d\u662f\u6700\u9ad8\u6548\u7684\u3002<\/p>\n\n\n\n<p id=\"%E5%9C%A8%E8%BF%9B%E8%A1%8C%E6%9B%B4%E6%96%B0%E6%93%8D%E4%BD%9C%E6%97%B6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E7%9B%B4%E6%8E%A5%E5%AF%B9value%E8%B5%8B%E5%80%BC%E6%9B%B4%E6%96%B0%E4%B9%9F%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8insert%E5%92%8Cemplace%E8%BF%94%E5%9B%9E%E7%9A%84iterator%E6%9D%A5%E6%9B%B4%E6%96%B0%E4%BD%86%E6%98%AF%E7%94%B1%E4%BA%8Einsert%E5%92%8Cemplace%E5%8F%AF%E8%83%BD%E4%BA%A7%E7%94%9F%E4%B8%80%E4%B8%AA%E4%B8%B4%E6%97%B6%E5%AF%B9%E8%B1%A1%E5%8D%B3pair%E6%8C%89%E7%85%A7cppreference%E7%9A%84%E8%AF%B4%E6%B3%95the-element-may-be-constructed-even-if-there-already-is-an-element-with-the-key-in-the-container-in-which-case-the-newly-constructed-element-will-be-destroyed-immediately%E6%89%80%E4%BB%A5%E8%BF%99%E6%97%B6%E5%80%99%E6%98%AF%E6%93%8D%E4%BD%9C%E6%9B%B4%E9%AB%98%E6%95%88\">\u5728\u8fdb\u884c\u66f4\u65b0\u64cd\u4f5c\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528<code>[]<\/code>\u76f4\u63a5\u5bf9value\u8d4b\u503c\u66f4\u65b0\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528<code>insert<\/code>\u548c<code>emplace<\/code>\u8fd4\u56de\u7684iterator\u6765\u66f4\u65b0\uff0c\u4f46\u662f\u7531\u4e8e<code>insert<\/code>\u548c<code>emplace<\/code>\u53ef\u80fd\u4ea7\u751f\u4e00\u4e2a\u4e34\u65f6\u5bf9\u8c61(\u5373pair\uff0c\u6309\u7167cppreference\u7684\u8bf4\u6cd5\uff0c<em>The element may be constructed even if there already is an element with the key in the container, in which case the newly constructed element will be destroyed immediately.<\/em>)\uff0c\u6240\u4ee5\u8fd9\u65f6\u5019\u662f<code>[]<\/code>\u64cd\u4f5c\u66f4\u9ad8\u6548\u3002<\/p>\n\n\n\n<p id=\"%E6%89%80%E4%BB%A5%E4%B9%A6%E4%B8%AD%E5%B0%B1%E6%8F%90%E5%87%BA%E4%BA%86%E4%B8%80%E4%B8%AA%E6%80%BB%E6%98%AF%E6%9C%80%E9%AB%98%E6%95%88%E7%9A%84effecientaddorupdate%E5%87%BD%E6%95%B0\">\u6240\u4ee5\u4e66\u4e2d\u5c31\u63d0\u51fa\u4e86\u4e00\u4e2a\u603b\u662f\u6700\u9ad8\u6548\u7684<code>effecientAddOrUpdate<\/code>\u51fd\u6570\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">template &lt;typename MapType, typename KeyArgType, typename ValueArgType&gt;\nMapType::iterator efficientAddOrUpdate(MapType&amp; m, const KeyArgType&amp; k, const ValueArgType&amp; v)\n{\n\tMapType::iterator lb = m.lower_bound(k);\n\tif (lb != m.end() &amp;&amp; !(m.key_comp()(k, lb-&gt;first))) {\n\t\tlb-&gt;second = v;\n\t\treturn lb;\n\t} else {\n\t\tm.insert(lb, {k, v});\n\t}\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8ff0\u4ee3\u7801\u4f7f\u7528\u4e86c++11\u7684<code>template&lt; class P &gt; iterator insert( const_iterator hint, P&amp;&amp; value );<\/code>\u8fd9\u4e2a\u51fd\u6570\u3002<\/p>\n\n\n\n<p>\u53e6\u5916\u9700\u8981\u6ce8\u610f\u7684\u662f<a href=\"https:\/\/stackoverflow.com\/a\/17174245\/5357784\">Stackoverflow<\/a>\u4e0a\u4e3e\u7684<code>insert<\/code>\u7684\u4f8b\u5b50\uff0c<code>std::map&lt;K,V&gt;::value_type<\/code>\u5b9e\u9645\u4e0a\u662f<code>std::pair&lt;const K,V&gt;<\/code>\uff0c\u5c24\u5176\u6ce8\u610f\u8fd9\u4e2a<code>const K<\/code>\uff0c\u8fd9\u5bfc\u81f4\u4e0b\u9762\u76843\u6bd41\u30012\u7684\u5199\u6cd5\u6548\u7387\u66f4\u4f4e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">K t; V u;\nstd::map&lt;K,V&gt; m;           <em>\/\/ std::map&lt;K,V&gt;::value_type is std::pair&lt;const K,V&gt;<\/em>\n\nm.insert( std::pair&lt;const K,V&gt;(t,u) );      <em>\/\/ 1<\/em>\nm.insert( std::map&lt;K,V&gt;::value_type(t,u) ); <em>\/\/ 2<\/em>\nm.insert( std::make_pair(t,u) );            <em>\/\/ 3<\/em>\n<\/code><\/pre>\n\n\n\n<p>\u56e0\u4e3a3\u7684\u5199\u6cd5\u751f\u6210\u7684\u662f<code>pair&lt;K,V&gt;<\/code>\uff0c\u5728\u6700\u7ec8\u62f7\u8d1d\u5230map\u91cc\u7684\u65f6\u5019\uff0c\u4f1a\u5148\u8f6c\u6362\u6210\u4e00\u4e2a<code>pair&lt;const K, V&gt;<\/code>\u518d\u62f7\u8d1d\u5230map\u7684<code>pair&lt;const K, V&gt;<\/code>\uff0c\u591a\u4e86\u4e2d\u95f4\u8fd9\u4e2a\u8f6c\u6362\u7684\u6b65\u9aa4\u3002<br>\u56e0\u6b643\u7684\u5199\u6cd5\u9700\u8981\u6539\u826f\u6210<code>m.insert( std::make_pair&lt;const K,V&gt;(t,u) ); \/\/ 4<\/code>\uff0c\u4ee5\u907f\u514d\u8fd9\u4e2a\u7c7b\u578b\u63a8\u5bfc\u5e26\u6765\u7684pair\u7c7b\u578b\u4e0d\u5339\u914d\uff0c\u9700\u8981\u8f6c\u6362\u7684\u5f00\u9500\u3002<\/p>\n\n\n\n<p>\u7136\u800c\uff0c\u4f7f\u7528emplace\u7684\u8bdd\uff0c\u53c8\u5b8c\u5168\u6ca1\u6709\u4e0a\u9762\u8fd9\u4e2a\u70e6\u607c\u4e86\uff0c\u5b8c\u7f8e\u8f6c\u53d1\u76f4\u63a5\u628a\u53c2\u6570\u4f20\u7ed9<code>std::pair&lt;const Key, T&gt;<\/code>\u7684\u6784\u9020\u51fd\u6570\uff0c\u6ca1\u6709\u8fd9\u4e2apair\u7c7b\u578b\u4e0d\u5bf9\u7684\u95ee\u9898\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-25-%E5%AD%A6%E4%BC%9A%E4%BD%BF%E7%94%A8unorderedset%E4%B8%8Eunorderedmap\"><span class=\"ez-toc-section\" id=\"Item_25_%E5%AD%A6%E4%BC%9A%E4%BD%BF%E7%94%A8unordered_set%E4%B8%8Eunordered_map\"><\/span>Item 25 \u5b66\u4f1a\u4f7f\u7528unordered_set\u4e0eunordered_map<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-26-%E4%BC%98%E5%85%88%E4%BD%BF%E7%94%A8iterator\"><span class=\"ez-toc-section\" id=\"Item_26_%E4%BC%98%E5%85%88%E4%BD%BF%E7%94%A8iterator\"><\/span>Item 26 \u4f18\u5148\u4f7f\u7528iterator<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u56db\u79cd\u8fed\u4ee3\u5668\uff1a<code>iterator<\/code>\uff0c<code>const_iterator<\/code>\uff0c<code>reverse_iterator<\/code>\uff0c<code>const_reverse_iterator<\/code>\u3002<br>\u4ee5\u53ca\u4ed6\u4eec\u4e4b\u95f4\u7684\u8f6c\u6362\u5173\u7cfb\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u4e0d\u5e26const\u7684\u53ef\u4ee5\u9690\u5f0f\u8f6c\u6362\u4e3a\u5e26const\u7684\uff1b<\/li><li>reverse\u7684\u53ef\u4ee5\u901a\u8fc7base\u51fd\u6570\u8f6c\u6362\u4e3a\u666e\u901a\u7684<code>iterator<\/code>\uff1b<\/li><li><code>iterator<\/code>\u53ef\u4ee5\u9690\u5f0f\u8f6c\u6362\u4e3a<code>reverse_iterator<\/code>\uff1b<\/li><\/ul>\n\n\n\n<p>\u4e66\u4e2d\u4e3e\u7684\u652f\u6301\u4f7f\u7528<code>iterator<\/code>\u7684\u4f8b\u5b50\uff1a<br>\u5f53\u4f60\u62ff<code>iterator<\/code>\u548c<code>const_iterator<\/code>\u8fdb\u884c\u6bd4\u8f83(==)\u548c\u76f8\u51cf\u7684\u8fd0\u7b97\u7684\u65f6\u5019\uff0c\u53ef\u80fd\u7531\u4e8estl\u7248\u672c\u5b9e\u73b0\u7684\u95ee\u9898\uff0c\u8fd9\u4e2a<code>==<\/code>\u548c<code>-<\/code>\u8fd0\u7b97\u662f\u5b9e\u73b0\u4e3a<code>const_iterator<\/code>\u7684\u6210\u5458\u51fd\u6570\uff0c\u5982\u679c\u4f60\u662f<code>iterator<\/code>\u4f5c\u4e3a\u7b2c\u4e00\u4e2a\u64cd\u4f5c\u6570\uff0c\u800c<code>const_iterator<\/code>\u4f5c\u4e3a\u7b2c\u4e8c\u4e2a\u64cd\u4f5c\u6570\uff0c\u90a3\u4e48\u7b2c\u4e00\u4e2a\u64cd\u4f5c\u6570\u7684<code>iterator<\/code>\u5c31\u4e0d\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3a<code>const_iterator<\/code>\u5bfc\u81f4\u7f16\u8bd1\u62a5\u9519\u3002\u6240\u4ee5\u4f5c\u8005\u5c31\u5efa\u8bae\u6211\u4eec\u5e72\u8106\u90fd\u4f7f\u7528<code>iterator<\/code>\u597d\u4e86\uff0c\u514d\u5f97\u9047\u5230\u8fd9\u4e9b\u53ef\u80fd\u7684\u9ebb\u70e6\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-27-constiterator%E8%BD%AC%E6%8D%A2%E4%B8%BAiterator\"><span class=\"ez-toc-section\" id=\"Item_27_const_iterator%E8%BD%AC%E6%8D%A2%E4%B8%BAiterator\"><\/span>Item 27 const_iterator\u8f6c\u6362\u4e3aiterator<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u4f7f\u7528<code>advance<\/code>\u548c<code>distance<\/code>\u51fd\u6570\uff1a<br><code>advance(i, distance&lt;Constler&gt;(i, ci));<\/code><\/p>\n\n\n\n<p>\u7531\u4e8e\u5bf9\u4e8e\u4e0d\u80fd\u652f\u6301random access\u7684\u5bb9\u5668\u6765\u8bf4\uff0c\u8fd9\u79cd\u8f6c\u6362\u7684\u4ee3\u4ef7\u4e0d\u662fO(1)\u7684\uff0c\u6240\u4ee5\u4f5c\u8005\u53c8\u63d0\u9192\u6211\u4eec\u4e0d\u8981\u7ed9\u81ea\u5df1\u6ca1\u4e8b\u627e\u4e8b\uff0c\u7528<code>iterator<\/code>\u5c31\u597d\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-28-reverseiterator%E7%9A%84base%E5%87%BD%E6%95%B0\"><span class=\"ez-toc-section\" id=\"Item_28_reverse_iterator%E7%9A%84base%E5%87%BD%E6%95%B0\"><\/span>Item 28 reverse_iterator\u7684base\u51fd\u6570<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p><code>reverse_iterator<\/code>\u7684<code>base<\/code>\u51fd\u6570\u8f6c\u51fa\u6765\u7684<code>iterator<\/code>\u5e76\u4e0d\u662f\u539f\u6765<code>reverse_iterator<\/code>\u6240\u6307\u7684\u4f4d\u7f6e\uff0c\u5de8\u5751\u3002\u53ea\u80fd\u8bf4\u7528\u5728\u63d2\u5165\u64cd\u4f5c\u65f6\u53ef\u4ee5\u76f4\u63a5\u7528\u8f6c\u6362\u51fa\u6765\u7684<code>iterator<\/code>\uff0c\u5bf9\u4e8e\u5220\u9664\u64cd\u4f5c\u5219\u9700\u8981\u5148\u5c06\u539f\u6765\u7684<code>reverse_iterator<\/code>\u8fdb\u884c<code>++<\/code>\u64cd\u4f5c\u518d\u8f6c\u6362\u4e3a<code>iterator<\/code>\u518d\u8fdb\u884c\u5220\u9664\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">v.erase((++ri).base());\n<\/code><\/pre>\n\n\n\n<p>\u4e4b\u6240\u4ee5\u4e0d\u7528<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">v.erase(--ri.base());\n<\/code><\/pre>\n\n\n\n<p>\u662f\u56e0\u4e3a\u7f16\u8bd1\u5668\u4e0d\u5141\u8bb8\u51fd\u6570\u8fd4\u56de\u7684\u6307\u9488\u88ab\u4fee\u6539(\u5b9e\u9645\u6d4b\u8bd5\u4e86\u4e0b\uff0c\u62a5\u7684\u9519\u8bef\u662f\u8fd4\u56de\u503c\u662f\u4e00\u4e2a\u53f3\u503c\uff0c\u4e0d\u5141\u8bb8\u8fdb\u884c<code>--<\/code>\u64cd\u4f5c)\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-30-make-sure-destination-ranges-are-big-enough\"><span class=\"ez-toc-section\" id=\"Item_30_Make_sure_destination_ranges_are_big_enough\"><\/span>Item 30 Make sure destination ranges are big enough<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u5c31\u662f\u5f53\u4f60\u4f7f\u7528<code>transform<\/code>\u7b97\u6cd5\u6a21\u677f\u5c06\u8f6c\u6362\u7ed3\u679c\u5b58\u653e\u5230\u53e6\u4e00\u4e2a\u5bb9\u5668\u91cc\u7684\u65f6\u5019\uff0c\u8981\u4e48\u4f7f\u7528\u5408\u9002\u7684<code>inserter<\/code>\u5c06\u7ed3\u679cappend\u6216\u8005insert\u5230\u8fd9\u4e2a\u5bb9\u5668\u91cc\u53bb\uff0c\u8981\u4e48\u63d0\u524dresize\uff0c\u628a\u7ed3\u679c\u4ee5\u8986\u76d6\u7684\u65b9\u5f0f\u5199\u8fdb\u53bb\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>back_inserter<\/code><\/li><li><code>front_inserter<\/code><br>\u8981\u6c42\u5bb9\u5668\u6709<code>push_front<\/code>\u51fd\u6570<\/li><li><code>insert_iterator<\/code><\/li><li><code>inserter<\/code><\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-31-%E5%87%A0%E7%A7%8D%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95\"><span class=\"ez-toc-section\" id=\"Item_31_%E5%87%A0%E7%A7%8D%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95\"><\/span>Item 31 \u51e0\u79cd\u6392\u5e8f\u7b97\u6cd5<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li><code>sort<\/code><\/li><li><code>stable_sort<\/code><\/li><li><code>partial_sort<\/code><br>\u8fd9\u4e2a\u7b97\u6cd5\u53ef\u4ee5\u7528\u6765\u9009\u53d6\u524dn\u4e2a\u5143\u7d20\uff0c\u5e76\u4e14\u53ea\u6709\u8fd9\u524dn\u4e2a\u5143\u7d20\u4fdd\u6301\u6709\u5e8f\uff0c\u5176\u4f59\u7684\u5143\u7d20\u4e0d\u4fdd\u8bc1\u6709\u5e8f\u3002<\/li><li><code>nth_element<\/code><br>\u8fd9\u4e2a\u7b97\u6cd5\u53ef\u4ee5\u7528\u6765\u628a\u5bb9\u5668\u6309\u7167\u67d0\u4e2a\u5206\u4f4d\u5212\u5206\u4e3a\u4e24\u534a\u3002<\/li><\/ul>\n\n\n\n<p>\u8fd9\u51e0\u4e2a\u90fd\u8981\u6c42\u652f\u6301\u968f\u673a\u8bbf\u95ee\uff0c\u56e0\u6b64\u8fd9\u51e0\u4e2a\u7b97\u6cd5\u6a21\u677f\u4e0d\u80fd\u76f4\u63a5\u7528\u5728list\u4e0a\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>partition<\/code><\/li><li><code>stable_partition<\/code><\/li><\/ul>\n\n\n\n<p>\u5219\u53ea\u8981\u6c42bidirectional iterators\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-32-remove%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\"><span class=\"ez-toc-section\" id=\"Item_32_remove%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\"><\/span>Item 32 remove\u7b97\u6cd5\u6a21\u677f<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>remove\u7b97\u6cd5\u6a21\u677f\u4f1a\u5c06\u7ed9\u5b9arange\u91cc\u4e0d\u9700\u8981\u5220\u9664\u7684\u5143\u7d20\u79fb\u52a8\u5230\u8fd9\u4e2arange\u7684\u6700\u524d\u9762\uff0c\u7136\u540e\u7531\u4e8eremove\u7b97\u6cd5\u6a21\u677f\u4f20\u5165\u7684\u53c2\u6570\u53ea\u662fiterator\uff0c\u65e0\u6cd5\u83b7\u77e5\u4f20\u5165\u7684range\u6240\u5bf9\u5e94\u7684\u5bb9\u5668\uff0c\u4e5f\u5c31\u65e0\u6cd5\u8c03\u7528\u8be5\u5bb9\u5668\u7684erase\u51fd\u6570\u6765\u8fdb\u884c\u771f\u6b63\u7684\u5220\u9664\uff0c \u9700\u8981\u5199\u4ee3\u7801\u7684\u4eba\u5728remove\u540e\u9762\u518d\u624b\u52a8\u8c03\u7528\u8be5\u5bb9\u5668\u7684erase\u51fd\u6570\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">vector&lt;int&gt; v;\n...\nv.erase(remove(v.begin(), v.end(), 99), v.end());\n...\n<\/code><\/pre>\n\n\n\n<p>\u5bf9\u4e8elist\u6765\u8bf4\uff0c\u5176\u6210\u5458\u51fd\u6570remove\u5219\u662f\u53ef\u4ee5\u771f\u6b63\u5220\u9664\u5143\u7d20\u7684\u3002<\/p>\n\n\n\n<p>\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u8c03\u7528remove\u540e\uff0cremove\u8fd4\u56de\u7684end\u548c<code>v.end()<\/code>\u76f4\u95f4\u662f\u9700\u8981\u88ab\u771f\u6b63\u5220\u9664\u7684\u5143\u7d20\uff0c\u4f46\u662f\u8fd9\u4e9b\u5143\u7d20\u7684\u503c\u662f\u53ef\u80fd\u88ab\u8986\u76d6\u4e3a\u5176\u4ed6\u7684\u503c\u7684\uff0c\u4e0d\u4fdd\u8bc1\u662f\u6211\u4eec\u6307\u5b9a\u8981\u5220\u9664\u7684\u503c\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-33-%E8%BF%99%E5%B0%B1%E5%AF%BC%E8%87%B4%E4%BA%86remove%E5%92%8Cremoveif%E4%B8%8D%E8%83%BD%E7%94%A8%E5%9C%A8%E4%BF%9D%E5%AD%98%E6%8C%87%E9%92%88%E7%9A%84%E5%AE%B9%E5%99%A8%E4%B8%8A%E9%9D%A2\"><span class=\"ez-toc-section\" id=\"Item_33_%E8%BF%99%E5%B0%B1%E5%AF%BC%E8%87%B4%E4%BA%86remove%E5%92%8Cremove_if%E4%B8%8D%E8%83%BD%E7%94%A8%E5%9C%A8%E4%BF%9D%E5%AD%98%E6%8C%87%E9%92%88%E7%9A%84%E5%AE%B9%E5%99%A8%E4%B8%8A%E9%9D%A2\"><\/span>Item 33 \u8fd9\u5c31\u5bfc\u81f4\u4e86remove\u548cremove_if\u4e0d\u80fd\u7528\u5728\u4fdd\u5b58\u6307\u9488\u7684\u5bb9\u5668\u4e0a\u9762<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u56e0\u4e3a\u7ecf\u8fc7<code>remove<\/code>\u3001<code>remove_if<\/code>\u64cd\u4f5c\u540e\uff0c\u8981\u5220\u9664\u7684\u5143\u7d20\u7684\u503c\u53ef\u80fd\u5df2\u7ecf\u88ab\u8986\u76d6(overwrite)\u4e86\uff0c\u4e0d\u80fd\u518d\u6839\u636e\u5143\u7d20\u91cc\u7684\u6307\u9488\u53bb\u91ca\u653e\u8d44\u6e90\u4e86\u3002\u5982\u679c\u5143\u7d20\u91cc\u4fdd\u5b58\u7684\u4e0d\u662f\u6307\u9488\uff0c\u800c\u662f\u667a\u80fd\u6307\u9488\uff0c\u90a3\u4e48\u8fd9\u79cd\u95ee\u9898\u5219\u4e0d\u4f1a\u51fa\u73b0\uff0c\u56e0\u4e3a\u667a\u80fd\u6307\u9488\u53ef\u4ee5\u81ea\u52a8\u91ca\u653e\u8d44\u6e90\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-34-%E6%B3%A8%E6%84%8F%E6%9F%90%E4%BA%9B%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF%E6%98%AF%E5%90%A6%E8%A6%81%E6%B1%82%E8%BE%93%E5%85%A5%E6%9C%89%E5%BA%8F\"><span class=\"ez-toc-section\" id=\"Item_34_%E6%B3%A8%E6%84%8F%E6%9F%90%E4%BA%9B%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF%E6%98%AF%E5%90%A6%E8%A6%81%E6%B1%82%E8%BE%93%E5%85%A5%E6%9C%89%E5%BA%8F\"><\/span>Item 34 \u6ce8\u610f\u67d0\u4e9b\u7b97\u6cd5\u6a21\u677f\u662f\u5426\u8981\u6c42\u8f93\u5165\u6709\u5e8f<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u8981\u6c42\u8f93\u5165\u6709\u5e8f\u7684\u7b97\u6cd5\u6a21\u677f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>binary_search<\/li><li>upper_bound<\/li><li>lower_bound<\/li><li>equal_range<\/li><li>set_union<\/li><li>set_intersection<\/li><li>set_difference<\/li><li>set_symmetric_difference<\/li><li>merge<\/li><li>inplace_merge<\/li><li>includes<\/li><\/ul>\n\n\n\n<p>\u4e0d\u8981\u6c42\u8f93\u5165\u6709\u5e8f\u7684\u7b97\u6cd5\u6a21\u677f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>unique<\/li><li>unique_copy<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-35-%E5%AE%9E%E7%8E%B0case-insensitive%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%AF%94%E8%BE%83\"><span class=\"ez-toc-section\" id=\"Item_35_%E5%AE%9E%E7%8E%B0case-insensitive%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%AF%94%E8%BE%83\"><\/span>Item 35 \u5b9e\u73b0case-insensitive\u7684\u5b57\u7b26\u4e32\u6bd4\u8f83<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u5176\u5b9e\u5c31\u662f\u8bb2\u4e86\u4e24\u4e2a\u7b97\u6cd5\u6a21\u677f\uff1amismatch\u548clexicographical_compare\u7684\u4f7f\u7528\uff0c\u4ee5\u53canot2\u7684\u4f7f\u7528\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-36-%E5%AE%9E%E7%8E%B0copyif\"><span class=\"ez-toc-section\" id=\"Item_36_%E5%AE%9E%E7%8E%B0copy_if\"><\/span>Item 36 \u5b9e\u73b0copy_if<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u7b97\u6cd5\u6a21\u677f\u5e93\u91cc\u6709\u7684\u5173\u4e8ecopy\u7684\u7b97\u6cd5\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>copy<\/li><li>replace_copy<\/li><li>replace_copy_if<\/li><li>remove_copy<\/li><li>remove_copy_if<\/li><li>uninitialized_copy<\/li><li>copy_backward<\/li><li>reverse_copy<\/li><li>unique_copy<\/li><li>rotate_copy<\/li><li>partial_sort_copy<\/li><\/ul>\n\n\n\n<p>\u53ef\u662f\u6ca1\u6709<code>copy_if<\/code>\uff0c\u56e0\u6b64\u9700\u8981\u81ea\u5df1\u5b9e\u73b0\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">template &lt;typename InputIterator, typename OutputIterator, typename Predicate&gt;\nOutputIterator copy_if(InputIterator begin, InputIterator end, OutputIterator destBegin, Predicate p)\n{\n\twhile (begin != end) {\n\t\tif (p(*begin))\n\t\t\t*destBegin++ = *begin;\n\t\t++begin;\n\t}\n\treturn destBegin;\n}\n<\/code><\/pre>\n\n\n\n<p>\u56e0\u4e3a<code>not1<\/code>\u662f\u4e0d\u80fd\u76f4\u63a5\u4f5c\u7528\u4e8e\u4e00\u4e2a\u51fd\u6570\u6307\u9488\/\u51fd\u6570\u5bf9\u8c61\u7684\uff0c\u56e0\u6b64\u60f3\u6309\u7167\u4e0b\u9762\u8fd9\u79cd\u65b9\u6cd5\u5199\u4e00\u4e2a\u7b80\u5316\u7248\u672c\u662f\u884c\u4e0d\u901a\u7684\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">template &lt;typename InputIterator, typename OutputIterator, typename Predicate&gt;\nOutputIterator copy_if(InputIterator begin, InputIterator end, OutputIterator destBegin, Predicate p)\n{\n\treturn remove_copy_if(begin, end, destBegin, not1(p));\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8ff0\u4ee3\u7801\u9700\u8981\u4fee\u6b63\uff0c\u89e3\u51b3\u65b9\u6cd5\u662f\u4f7f\u7528<code>ptr_fun<\/code>\uff0c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\treturn remove_copy_if(begin, end, destBegin, not1(std::ptr_fun(p)));\n<\/code><\/pre>\n\n\n\n<p>\u5907\u6ce8\uff1a<br>c++11\u5df2\u7ecf\u63d0\u4f9b\u4e86<code>copy_if<\/code>\u8fd9\u4e2a\u7b97\u6cd5\u6a21\u677f\uff0c\u5176\u53ef\u80fd\u7684\u4e00\u79cd\u5b9e\u73b0\u6b63\u662f\u672c\u4e66\u6240\u4ecb\u7ecd\u7684\u5b9e\u73b0\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-37-accumulate%E4%B8%8Eforeach\"><span class=\"ez-toc-section\" id=\"Item_37_accumulate%E4%B8%8Efor_each\"><\/span>Item 37 accumulate\u4e0efor_each<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p><code>accumulate<\/code>\u4e0e<code>for_each<\/code>\u7684\u533a\u522b\uff1a<br><code>accumulate<\/code>\u7684\u51fd\u6570\u5bf9\u8c61\u4e0d\u53ef\u4ee5\u5bf9\u8f93\u5165\u7684\u6570\u636e\u4ea7\u751f\u526f\u4f5c\u7528\uff0c\u800c<code>for_each<\/code>\u53ef\u4ee5\u3002<\/p>\n\n\n\n<p>\u5176\u4ed6\u7b97\u6cd5\u6a21\u677f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>count<\/code><\/li><li><code>count_if<\/code><\/li><li><code>min_element<\/code><\/li><li><code>max_element<\/code><\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-38-pass-by-value%E7%9A%84%E5%87%BD%E6%95%B0%E5%AF%B9%E8%B1%A1\"><span class=\"ez-toc-section\" id=\"Item_38_pass-by-value%E7%9A%84%E5%87%BD%E6%95%B0%E5%AF%B9%E8%B1%A1\"><\/span>Item 38 pass-by-value\u7684\u51fd\u6570\u5bf9\u8c61<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u5bf9\u4e8epass-by-value\u7684\u51fd\u6570\u5bf9\u8c61\uff0c\u9700\u8981\u4fdd\u8bc1\u4e24\u70b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\u51fd\u6570\u5bf9\u8c61\u7c7b\u5e94\u8be5\u5c3d\u91cf\u5c0f\uff0c\u4ee5\u51cf\u5c11\u62f7\u8d1d\u5e26\u6765\u7684\u6027\u80fd\u635f\u5bb3\uff1b<\/li><li>\u51fd\u6570\u5bf9\u8c61\u4e0d\u8981\u4f7f\u7528\u591a\u6001\uff1b<\/li><\/ol>\n\n\n\n<p>\u5982\u679c\u4f60\u60f3\u8981\u5728\u51fd\u6570\u5bf9\u8c61\u91cc\u4fdd\u5b58\u5f88\u591a\u72b6\u6001\u4e4b\u7c7b\u7684\u6570\u636e\u7684\u8bdd\uff0c\u4e3a\u4e86\u8ba9\u8fd9\u4e2a\u7c7b\u5c3d\u91cf\u5c0f\uff0c\u53ef\u4ee5\u8003\u8651\u518d\u5199\u4e00\u4e2a\u7c7b\u4fdd\u5b58\u8fd9\u4e9b\u6570\u636e\uff0c\u7136\u540e\u5728\u51fd\u6570\u5bf9\u8c61\u91cc\u4fdd\u5b58\u6307\u5411\u8fd9\u4e2a\u7c7b\u7684\u6307\u9488\u3002\u8fd9\u79cd\u505a\u6cd5\u4e5f\u5e26\u6765\u4e00\u4e2a\u95ee\u9898\uff0c\u90a3\u5c31\u662f\u8981\u5904\u7406\u597d\u8fd9\u4e2a\u6307\u9488\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-39-predicate%E5%BA%94%E8%AF%A5%E6%98%AFpure-functions\"><span class=\"ez-toc-section\" id=\"Item_39_predicate%E5%BA%94%E8%AF%A5%E6%98%AFpure_functions\"><\/span>Item 39 predicate\u5e94\u8be5\u662fpure functions<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u6982\u5ff5\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>predicate<br>\u8fd4\u56de\u503c\u662fbool(\u6216\u8005\u662f\u53ef\u4ee5\u9690\u5f0f\u8f6c\u6362\u4e3abool\u7684\u5176\u4ed6\u7c7b\u578b)\u7684\u51fd\u6570<\/li><li>pure function<br>\u51fd\u6570\u7684\u8fd4\u56de\u503c\u53ea\u548c\u8f93\u5165\u7684\u53c2\u6570\u6709\u5173\uff0c\u8f93\u5165\u7684\u53c2\u6570\u76f8\u540c\uff0c\u90a3\u4e48\u8fd4\u56de\u503c\u4e5f\u4e00\u5b9a\u76f8\u540c(\u6709\u70b9\u51fd\u6570\u5f0f\u7f16\u7a0b\u7684\u610f\u5473)<\/li><li>predicate class<br><code>operator()<\/code>\u6210\u5458\u51fd\u6570\u662fpredicate\u7684functor class<\/li><\/ul>\n\n\n\n<p>\u5bf9\u4e8estl\u91cc\u7528\u5230predicate\u4f5c\u4e3a\u53c2\u6570\u7684\u5730\u65b9\uff0c\u65e0\u8bba\u4f20\u5165\u7684\u662fpredicate class\u7684\u5bf9\u8c61\uff0c\u8fd8\u662f\u51fd\u6570\u6307\u9488\uff0c\u5bf9\u5e94\u7684\u8fd9\u4e2apredicate\u51fd\u6570\u90fd\u5e94\u8be5\u5b9e\u73b0\u4e3apure function\u3002\u4e0d\u8981\u8bd5\u56fe\u5728\u8fd9\u4e2apredicate\u51fd\u6570\u91cc\u7528static\u53d8\u91cf\u4e4b\u7c7b\u7684\u65b9\u6cd5\u5728\u591a\u6b21\u8c03\u7528\u4e4b\u95f4\u7ef4\u62a4\u72b6\u6001\uff0c\u56e0\u4e3astl\u4f1a\u8c03\u7528\u591a\u5c11\u6b21predicate\uff0c\u662f\u5426\u4f1a\u590d\u5236\u4f20\u5165\u7684predicate class\u5bf9\u8c61\uff0c\u90fd\u662f\u4e0d\u53ef\u63a7\u7684\uff0c\u53ef\u80fd\u4f1a\u8d85\u51fa\u6211\u4eec\u7684\u9884\u6599\u4ece\u800c\u5bfc\u81f4\u9519\u8bef\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-40-make-functor-classes-adaptable\"><span class=\"ez-toc-section\" id=\"Item_40_Make_functor_classes_adaptable\"><\/span>Item 40 Make functor classes adaptable<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>STL\u91cc\u67094\u4e2afunction adapters(<code>not1<\/code>\uff0c<code>not2<\/code>\uff0c<code>bind1st<\/code>\uff0c<code>bind2nd<\/code>)\uff0c\u53ef\u4ee5\u6839\u636e\u4f20\u5165\u7684\u51fd\u6570\u5bf9\u8c61\u751f\u6210\u5177\u6709\u65b0\u7684\u8bed\u4e49\u7684\u51fd\u6570\u5bf9\u8c61\u3002\u4f46\u662f\u8fd9\u4e9bfunction adapters\u5bf9\u4f20\u5165\u7684\u51fd\u6570\u5bf9\u8c61\u5bf9\u5e94\u7684functor class\u6709\u8981\u6c42\uff0c\u9700\u8981\u8fd9\u4e2afunctor class\u91cc\u6709\u4e00\u4e9b\u7c7b\u578b\u5b9a\u4e49(\u5176\u5b9e\u5c31\u662ftypedef\uff0c\u6bd4\u5982<code>argument_type<\/code>\uff0c<code>first_argument_type<\/code>\uff0c<code>second_argument_type<\/code>\uff0c<code>result_type<\/code>)\u3002\u542b\u6709\u8fd9\u4e9b\u7c7b\u578b\u5b9a\u4e49\u7684functor class\u5c31\u79f0\u4e4b\u4e3aadaptable\uff0c\u800c\u8981\u8ba9functor class\u542b\u6709\u8fd9\u4e9b\u7c7b\u578b\u5b9a\u4e49\uff0c\u6700\u597d\u7684\u529e\u6cd5\u5c31\u662f\u7ee7\u627f\u81ea<code>std::unary_function<\/code>\u548c<code>std::binary_function<\/code>\u3002<\/p>\n\n\n\n<p><code>std::unary_function<\/code>\u548c<code>std::binary_function<\/code>\u4e5f\u4e0d\u662f\u80fd\u591f\u76f4\u63a5\u7ee7\u627f\u7684\uff0c\u5b83\u4eec\u53ea\u662f\u7c7b\u6a21\u677f\uff0c\u9700\u8981\u6839\u636efunctor class\u91cc\u7684<code>operator()<\/code>\u7684\u53c2\u6570\u548c\u8fd4\u56de\u7c7b\u578b\u751f\u6210\u6a21\u677f\u7c7b\uff0c\u7136\u540e\u518d\u7528\u4e8efunctor class\u7684\u7ee7\u627f\u3002<\/p>\n\n\n\n<p>\u5982\u679cfunctor class\u7684<code>operator()<\/code>\u51fd\u6570\u7684\u53c2\u6570\u7c7b\u578b\u6216\u8005\u8fd4\u56de\u503c\u7c7b\u578b\u4e0d\u662f\u6307\u9488\u7c7b\u578b\uff0c\u90a3\u4e48\u7528\u4e8e\u7ee7\u627f\u7684<code>std::unary_function<\/code>\u548c<code>std::binary_function<\/code>\u7684\u6a21\u677f\u53c2\u6570\u4f1a\u53bb\u6389<code>const<\/code>\u548c<code>&amp;<\/code>\u5c5e\u6027\uff0c\u53cd\u4e4b\u5219\u4e0d\u53bb\u6389\u3002\u8fd9\u4e2a\u539f\u7406\u8981\u770b\u5177\u4f53\u7684<code>not1<\/code>\uff0c<code>not2<\/code>\uff0c<code>bind1st<\/code>\uff0c<code>bind2nd<\/code>\u8fd9\u4e9bfunction adapters\u7684\u5b9e\u73b0\uff0c\u770b\u91cc\u9762\u662f\u5982\u4f55\u5904\u7406\u6a21\u677f\u53c2\u6570\u7c7b\u578b\u7684\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-41-ptrfunmemfun%E4%B8%8Ememfunref\"><span class=\"ez-toc-section\" id=\"Item_41_ptr_fun%EF%BC%8Cmem_fun%E4%B8%8Emem_fun_ref\"><\/span>Item 41 ptr_fun\uff0cmem_fun\u4e0emem_fun_ref<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>STL\u91cc\u7684\u51fd\u6570\u6a21\u677f\u53ea\u4f1a\u4f7f\u7528<code>f(x)<\/code>\u7684\u65b9\u5f0f\u6765\u8c03\u7528\u4f20\u5165\u7684\u51fd\u6570\u5bf9\u8c61\u6216\u8005\u51fd\u6570\u6307\u9488\uff0c\u4f46\u662f\u6211\u4eec\u6709\u65f6\u5019\u60f3\u4f20\u5165\u7684\u662f\u6210\u5458\u51fd\u6570\uff0c\u5e0c\u671b\u6309\u7167<code>x.f()<\/code>\u6216\u8005<code>p-&gt;f()<\/code>\u7684\u65b9\u5f0f\u6765\u8c03\u7528\u8fd9\u4e2a\u51fd\u6570\uff0c\u8fd9\u4e2a\u65f6\u5019\u6211\u4eec\u5c31\u9700\u8981\u4f7f\u7528<code>mem_fun<\/code>\u548c<code>mem_fun_ref<\/code>\u6765\u5904\u7406\u4e00\u4e0b\u6211\u4eec\u4f20\u5165\u7684\u6210\u5458\u51fd\u6570\uff0c\u8ba9STL\u7684\u51fd\u6570\u6a21\u677f\u4ecd\u7136\u53ef\u4ee5\u76f4\u63a5\u7528<code>f(x)<\/code>\u7684\u65b9\u5f0f\u8c03\u7528\u4f20\u5165\u7684\u51fd\u6570\u5bf9\u8c61\u6216\u8005\u51fd\u6570\u6307\u9488\u3002<\/p>\n\n\n\n<p><code>ptr_fun<\/code>\uff0c\u6309\u7167\u6211\u7684\u7406\u89e3\u662fItem 40\u4e2d\uff0c\u7528\u4e8e\u5904\u7406\u51fd\u6570\u6307\u9488\uff0c\u4f7f\u5176\u53ef\u4ee5\u88ab<code>not1<\/code>\uff0c<code>not2<\/code>\uff0c<code>bind1st<\/code>\uff0c<code>bind2nd<\/code>\u8fd9\u4e9bfunction adapters\u63a5\u53d7\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-42-%E4%B8%8D%E8%A6%81%E9%80%9A%E8%BF%87%E6%A8%A1%E6%9D%BF%E7%89%B9%E5%8C%96%E6%94%B9%E5%86%99stdless\"><span class=\"ez-toc-section\" id=\"Item_42_%E4%B8%8D%E8%A6%81%E9%80%9A%E8%BF%87%E6%A8%A1%E6%9D%BF%E7%89%B9%E5%8C%96%E6%94%B9%E5%86%99std_less\"><\/span>Item 42 \u4e0d\u8981\u901a\u8fc7\u6a21\u677f\u7279\u5316\u6539\u5199std::less<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p><code>std::less<\/code>\u9ed8\u8ba4\u8c03\u7528<code>operator&lt;<\/code>\uff0c\u4e0d\u8981\u5c1d\u8bd5\u901a\u8fc7\u6a21\u677f\u7279\u5316\u6539\u5199<code>std::less<\/code>\u7684\u884c\u4e3a\uff0c\u8ba9\u5176\u53bb\u505a\u5176\u4ed6\u7684\u4e8b\u60c5\uff0c\u56e0\u4e3a\u8fd9\u6837\u4f1a\u9020\u6210\u8bef\u89e3\u3002\u6b63\u5e38\u4eba\u8bfb\u4ee3\u7801\u90fd\u4f1a\u4ee5\u4e3a<code>set<\/code>\u548c<code>multset<\/code>\u3001<code>map<\/code>\u3001<code>multimap<\/code>\u8fd9\u4e9b\u4e1c\u897f\u662f\u6309\u7167<code>operator&lt;<\/code>\u6765\u6bd4\u8f83\u987a\u5e8f\u7684\uff0c\u4f60\u91cd\u5199\u4e86<code>std::less<\/code>\u7684\u884c\u4e3a\uff0c\u8bfb\u4ee3\u7801\u7684\u4eba\u4e0d\u4e00\u5b9a\u4f1a\u6e05\u9192\u7684\u6ce8\u610f\u5230\u8fd9\u4e00\u70b9\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-43-%E4%BD%BF%E7%94%A8%E7%8E%B0%E6%9C%89%E7%9A%84%E7%AE%97%E6%B3%95%E5%BA%93%E8%80%8C%E4%B8%8D%E6%98%AF%E6%89%8B%E5%86%99%E7%AE%97%E6%B3%95loop\"><span class=\"ez-toc-section\" id=\"Item_43_%E4%BD%BF%E7%94%A8%E7%8E%B0%E6%9C%89%E7%9A%84%E7%AE%97%E6%B3%95%E5%BA%93%E8%80%8C%E4%B8%8D%E6%98%AF%E6%89%8B%E5%86%99%E7%AE%97%E6%B3%95loop\"><\/span>Item 43 \u4f7f\u7528\u73b0\u6709\u7684\u7b97\u6cd5\u5e93\u800c\u4e0d\u662f\u624b\u5199\u7b97\u6cd5(loop)<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u76f8\u6bd4\u4e8e\u81ea\u5df1\u624b\u5199\u5faa\u73af\u3001\u7b97\u6cd5\uff0c\u4f7f\u7528**\u91cc\u7684\u51fd\u6570\u7684\u597d\u5904\u6709\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u6548\u7387<br>STL\u613f\u610f\u505a\u6211\u4eec\u61d2\u5f97\u505a\u7684\u4f18\u5316\uff1b<br>STL\u7528\u7684\u7b97\u6cd5\u4e00\u822c\u6bd4\u6211\u4eec\u81ea\u5df1\u80fd\u591f\u60f3\u51fa\u6765\u7684\u597d\uff1b<br>\u5728\u5904\u7406STL\u91cc\u7684\u6570\u636e\u7ed3\u6784\u65f6\uff0c<code>&lt;algorithm&gt;<\/code>\u91cc\u7684\u7b97\u6cd5\u5b9e\u73b0\u7531\u4e8e\u6bd4\u6211\u4eec\u4e00\u822c\u7a0b\u5e8f\u5458\u66f4\u6e05\u695a\u8fd9\u4e9b\u6570\u636e\u7ed3\u6784\u662f\u5982\u4f55\u5b9e\u73b0\u7684\uff0c\u56e0\u6b64\u53ef\u4ee5\u7528\u4e0a\u4e00\u4e9b\u548c\u8fd9\u4e9b\u6570\u636e\u7ed3\u6784\u76f8\u5173\u7684\u66f4\u5e95\u5c42\u7684\u4f18\u5316\uff1b<\/li><li>\u6b63\u786e\u6027<br>\u81ea\u5df1\u5199\u53ef\u80fd\u4f1a\u72af\u5f88\u591a\u8fed\u4ee3\u5668\u76f8\u5173\u7684\u9519<\/li><li>\u53ef\u7ef4\u62a4\u6027<br><code>&lt;algorithm&gt;<\/code>\u91cc\u7684\u51fd\u6570\u540d\u5b57\u90fd\u53d6\u7684\u5f88\u51c6\u786e\uff0c\u5bb9\u6613\u7406\u89e3\u4ee3\u7801\u5230\u5e95\u5728\u505a\u4ec0\u4e48<\/li><\/ul>\n\n\n\n<p>\u603b\u4e4b\uff0c\u5728\u6709\u73b0\u6210\u7684<code>&lt;algorithm&gt;<\/code>\u7b97\u6cd5\u6a21\u677f\u53ef\u7528\u7684\u65f6\u5019\uff0c\u5e76\u4e14\u8fd9\u4e9b\u7b97\u6cd5\u6a21\u677f\u53ef\u4ee5\u7b80\u5316\u6211\u4eec\u7684\u4ee3\u7801\u3001\u63d0\u5347\u6548\u7387\u3001\u589e\u52a0\u53ef\u8bfb\u6027\uff0c\u6700\u597d\u5c31\u7528\u8fd9\u4e9b\u7b97\u6cd5\u6a21\u677f\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-44-%E4%BD%BF%E7%94%A8%E5%90%8C%E5%90%8D%E7%9A%84%E6%88%90%E5%91%98%E5%87%BD%E6%95%B0%E8%80%8C%E4%B8%8D%E6%98%AF%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\"><span class=\"ez-toc-section\" id=\"Item_44_%E4%BD%BF%E7%94%A8%E5%90%8C%E5%90%8D%E7%9A%84%E6%88%90%E5%91%98%E5%87%BD%E6%95%B0%E8%80%8C%E4%B8%8D%E6%98%AF%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\"><\/span>Item 44 \u4f7f\u7528\u540c\u540d\u7684\u6210\u5458\u51fd\u6570\u800c\u4e0d\u662f\u7b97\u6cd5\u6a21\u677f<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li>\u540c\u540d\u7684\u6210\u5458\u51fd\u6570\u53ef\u80fd\u5177\u6709\u66f4\u4f4e\u7684\u7b97\u6cd5\u590d\u6742\u5ea6<\/li><li>\u540c\u540d\u7684\u6210\u5458\u51fd\u6570\u53ef\u4ee5\u66f4\u597d\u7684\u5229\u7528\u5bb9\u5668\u5185\u90e8\u7684\u6570\u636e\u7ed3\u6784<\/li><li>\u50cf<code>map<\/code>\u548c<code>multimap<\/code>\u8fd9\u79cd\u5bb9\u5668\uff0c\u53ef\u4ee5\u4f7f\u7528<code>equivalence<\/code>\u800c\u4e0d\u662f<code>equality<\/code>\uff0c\u53ea\u6bd4\u8f83key\uff0c\u800c\u4e0d\u7528\u6bd4\u8f83\u6574\u4e2apair<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-45-%E7%94%A8%E4%BA%8E%E5%9C%A8%E5%AE%B9%E5%99%A8%E4%B8%AD%E6%90%9C%E7%B4%A2%E7%9A%84%E5%87%A0%E4%B8%AA%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\"><span class=\"ez-toc-section\" id=\"Item_45_%E7%94%A8%E4%BA%8E%E5%9C%A8%E5%AE%B9%E5%99%A8%E4%B8%AD%E6%90%9C%E7%B4%A2%E7%9A%84%E5%87%A0%E4%B8%AA%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF\"><\/span>Item 45 \u7528\u4e8e\u5728\u5bb9\u5668\u4e2d\u641c\u7d22\u7684\u51e0\u4e2a\u7b97\u6cd5\u6a21\u677f<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li><code>count<\/code><\/li><li><code>find<\/code><\/li><li><code>binary_search<\/code><\/li><li><code>lower_bound<\/code><\/li><li><code>upper_bound<\/code><\/li><li><code>equal_range<\/code><\/li><\/ul>\n\n\n\n<p>\u6ce8\u610f\u533a\u5206\u5bb9\u5668\u91cc\u7684\u5143\u7d20\u662f\u5426\u6709\u5e8f\u3001\u5bb9\u5668\u672c\u8eab\u662f\u5426\u63d0\u4f9b\u4e86\u76f8\u5e94\u7684\u66f4\u9ad8\u6548\u7684\u6210\u5458\u51fd\u6570\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-46-%E5%B0%BD%E9%87%8F%E4%BD%BF%E7%94%A8%E5%87%BD%E6%95%B0%E5%AF%B9%E8%B1%A1%E8%80%8C%E4%B8%8D%E6%98%AF%E5%87%BD%E6%95%B0%E6%8C%87%E9%92%88%E4%BD%9C%E4%B8%BA%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF%E7%9A%84%E5%8F%82%E6%95%B0\"><span class=\"ez-toc-section\" id=\"Item_46_%E5%B0%BD%E9%87%8F%E4%BD%BF%E7%94%A8%E5%87%BD%E6%95%B0%E5%AF%B9%E8%B1%A1%E8%80%8C%E4%B8%8D%E6%98%AF%E5%87%BD%E6%95%B0%E6%8C%87%E9%92%88%E4%BD%9C%E4%B8%BA%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF%E7%9A%84%E5%8F%82%E6%95%B0\"><\/span>Item 46 \u5c3d\u91cf\u4f7f\u7528\u51fd\u6570\u5bf9\u8c61\u800c\u4e0d\u662f\u51fd\u6570\u6307\u9488\u4f5c\u4e3a\u7b97\u6cd5\u6a21\u677f\u7684\u53c2\u6570<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u5982\u679c\u4f60\u7684\u51fd\u6570\u5bf9\u8c61\u5b9e\u73b0\u4e86\u5185\u8054(inline)\uff0c\u90a3\u4e48\u7b97\u6cd5\u6a21\u677f\u5728\u5c55\u5f00\u7684\u65f6\u5019\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u5185\u8054\u3002\u4f46\u662f\u5982\u679c\u4f60\u4f20\u5165\u7684\u53c2\u6570\u662f\u51fd\u6570\u6307\u9488\uff0c\u90a3\u4e48\u5c31\u53ef\u80fd\u6ca1\u6cd5\u4f7f\u7528\u8fd9\u4e2a\u5185\u8054\u4e86\uff0c\u8fd9\u6837\u53cd\u800c\u53ef\u80fd\u5bfc\u81f4\u4f20\u51fd\u6570\u6307\u9488\u7684\u6027\u80fd\u4f4e\u4e8e\u4f20\u51fd\u6570\u5bf9\u8c61\u7684\u6027\u80fd\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-47-%E4%B8%8D%E8%A6%81%E5%86%99write-only-code\"><span class=\"ez-toc-section\" id=\"Item_47_%E4%B8%8D%E8%A6%81%E5%86%99write-only_code\"><\/span>Item 47 \u4e0d\u8981\u5199write-only code<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li>\u4f60\u53ef\u4ee5\u5199\u9ad8\u5bc6\u5ea6(\u4ee3\u7801\u91cf\u5c11)\u3001\u9ad8\u6027\u80fd(\u8282\u7ea6\u7684\u6027\u80fd\u53ef\u4ee5\u5ffd\u7565\u4e0d\u8ba1)\u6765\u6298\u78e8\u4f60\u7684\u961f\u53cb\uff0c\u4e5f\u53ef\u4ee5\u9009\u62e9\u505a\u4e2a\u597d\u4eba\uff1b<\/li><li>\u5199\u7684\u65f6\u5019\u60f3\u7684\u4e0d\u591f\u6e05\u695a\uff0c\u9760\u4fee\u4fee\u8865\u8865\u51fa\u6765\u7684\u4ee3\u7801\u5bf9\u522b\u4eba\u7684\u53ef\u8bfb\u6027\u5927\u6982\u7387\u4e0d\u597d\uff0c\u8fd9\u5c31\u662f\u6240\u8c13\u7684write-only code\uff1b<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-48-include%E5%A4%B4%E6%96%87%E4%BB%B6%E6%97%B6%E8%A6%81%E5%86%99%E6%AD%A3%E7%A1%AE\"><span class=\"ez-toc-section\" id=\"Item_48_include%E5%A4%B4%E6%96%87%E4%BB%B6%E6%97%B6%E8%A6%81%E5%86%99%E6%AD%A3%E7%A1%AE\"><\/span>Item 48 include\u5934\u6587\u4ef6\u65f6\u8981\u5199\u6b63\u786e<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u4e0d\u8981\u5077\u61d2\uff0c\u7528\u4e86\u4ec0\u4e48STL\u7684\u4ec0\u4e48\u7ec4\u4ef6\u5c31\u8981\u5305\u542b\u76f8\u5e94\u7684\u5934\u6587\u4ef6\uff0c\u867d\u7136\u67d0\u4e9b\u5934\u6587\u4ef6\u53ef\u80fd\u5df2\u7ecf\u5e2e\u4f60\u5305\u542b\u4e86\u53e6\u5916\u7684\u6240\u9700\u8981\u7684\u5934\u6587\u4ef6\uff0c\u4f46\u662f\u8fd9\u79cd\u5305\u542b\u5173\u7cfb\u53ef\u80fd\u6362\u4e86STL\u5e93\u4e4b\u540e\u5c31\u6ca1\u6709\u4e86\uff0c\u4f60\u7684\u4ee3\u7801\u5c31\u6709\u79fb\u690d\u6027\u95ee\u9898\u4e86\u3002<br>\u4f5c\u8005\u5217\u4e86\u51e0\u6761\u89c4\u5219\u6765\u5e2e\u52a9\u8bb0\u5fc6\u6240\u9700\u5934\u6587\u4ef6\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u5bb9\u5668\u7684\u5934\u6587\u4ef6\u548c\u5bb9\u5668\u672c\u8eab\u7684\u540d\u5b57\u57fa\u672c\u76f8\u540c\uff1b<\/li><li>\u9664\u4e86<code>accumulate<\/code>\u3001<code>inner_product<\/code>\u3001<code>adjacent_difference<\/code>\u548c<code>partial_sum<\/code>\u662f\u56db\u4e2a\u7b97\u6cd5\u662f\u58f0\u660e\u5728<code>&lt;numeric&gt;<\/code>\u4e2d\u7684\uff0c \u5176\u4ed6\u7b97\u6cd5\u90fd\u662f\u58f0\u660e\u5728<code>&lt;algorithm&gt;<\/code>\u4e2d\u7684\uff1b<\/li><li><code>istream_iterators<\/code>\u548c<code>istreambuf_iterators<\/code>\u8fd9\u79cd\u7279\u6b8a\u7684\u8fed\u4ee3\u5668\u58f0\u660e\u5728<code>&lt;iterator&gt;<\/code>\u91cc\uff1b<\/li><li><code>less&lt;T&gt;<\/code>\u8fd9\u79cdfunctor\u58f0\u660e\u5728<code>&lt;functional&gt;<\/code>\u4e2d\uff1b<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-49-%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BBstl%E7%9B%B8%E5%85%B3%E7%9A%84%E7%BC%96%E8%AF%91%E6%8A%A5%E9%94%99%E4%BF%A1%E6%81%AF\"><span class=\"ez-toc-section\" id=\"Item_49_%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BBSTL%E7%9B%B8%E5%85%B3%E7%9A%84%E7%BC%96%E8%AF%91%E6%8A%A5%E9%94%99%E4%BF%A1%E6%81%AF\"><\/span>Item 49 \u5982\u4f55\u9605\u8bfbSTL\u76f8\u5173\u7684\u7f16\u8bd1\u62a5\u9519\u4fe1\u606f<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u4e3b\u8981\u662f\u8bb2\u4e86STL\u76f8\u5173\u7684\u62a5\u9519\u4fe1\u606f\u53ef\u80fd\u4f1a\u542b\u6709\u4e00\u5927\u5806\u6a21\u677f\u7c7b\uff0c\u53ef\u4ee5\u901a\u8fc7\u5b57\u7b26\u4e32\u66ff\u6362\u628a\u8fd9\u4e9b\u6a21\u677f\u7c7b\u7684\u540d\u5b57\u53d8\u7b80\u5355\u77ed\u5c0f\u4e00\u4e9b\u6765\u7b80\u5316\u62a5\u9519\u4fe1\u606f\u3002<br>\u5728const member function\u4e2d\u975e\u9759\u6001\u6210\u5458\u53d8\u91cf\u90fd\u4f1a\u9ed8\u8ba4\u53d8\u6210const\u7684\u8fd9\u4e2a\u4e3e\u4f8b\u5012\u662f\u4ee4\u4eba\u5370\u8c61\u6df1\u523b\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"item-50-stl%E7%9B%B8%E5%85%B3%E7%BD%91%E7%AB%99\"><span class=\"ez-toc-section\" id=\"Item_50_STL%E7%9B%B8%E5%85%B3%E7%BD%91%E7%AB%99\"><\/span>Item 50 STL\u76f8\u5173\u7f51\u7ad9<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li>SGI STL<br><a href=\"http:\/\/www.sgi.com\/tech\/stl\/\">http:\/\/www.sgi.com\/tech\/stl\/<\/a><br>\u8c8c\u4f3c\u5df2\u7ecf\u8bbf\u95ee\u4e0d\u4e86\u4e86\uff0c\u4e0d\u8fc7\u5012\u662f\u7f51\u4e0a\u53d1\u73b0\u4e86\u4e00\u4e2a\u522b\u4eba\u7684SGI STL\u7684<a href=\"https:\/\/github.com\/steveLauwh\/SGI-STL\">\u7b14\u8bb0<\/a>\u3002<br>SGI STL\u5df2\u7ecf\u6210\u4e3aGNU C++\u6807\u51c6\u5e93\u7684\u4e00\u90e8\u5206\u4e86\uff0c\u6240\u4ee5\u76f4\u63a5\u770bg++\u9644\u5e26\u7684STL\u6e90\u7801\u597d\u4e86\u3002<\/li><li>STLport<br><a href=\"http:\/\/www.stlport.org\/\">http:\/\/www.stlport.org\/<\/a><br>\u4e24\u4e2a\u4f18\u70b9\uff1a<ul><li>\u6709\u8de8\u5e73\u53f0\u7684\u4f18\u5316\uff0c\u51cf\u5c11\u4f7f\u7528\u5176\u4ed6stl\u5e93\u53ef\u80fd\u9047\u5230\u7684\u79fb\u690d\u4e0a\u7684\u5751\uff1b<\/li><li>\u63d0\u4f9b\u4e00\u79cddebug\u6a21\u5f0f\uff0c\u53ef\u4ee5\u68c0\u6d4b\u51fa\u4f7f\u7528stl\u76f8\u5173\u7684\u9519\u8bef(\u6bd4\u5982\u4e71\u8e29\u5185\u5b58\u7136\u540e\u7a0b\u5e8f\u53c8\u4e0d\u5d29\u6e83\u5c31\u9700\u8981\u8fd9\u79cd\u65b9\u6cd5\u6765\u68c0\u6d4b\u51fa\u6765)\uff1b<\/li><\/ul><\/li><li>boost<br><a href=\"http:\/\/www.boost.org\/\">http:\/\/www.boost.org\/<\/a><br>\u5728stl\u91cc\u9762\u627e\u4e0d\u5230\u7684feature\u3001\u529f\u80fd\u6709\u53ef\u80fd\u5728boost\u5e93\u91cc\u5c31\u53ef\u4ee5\u627e\u5230\uff0c\u6bd4\u5982\u6211\u5c31\u662f\u5728boost\u5e93\u91cc\u627e\u5230\u4e86\u5171\u4eab\u5185\u5b58\u7684\u76f8\u5173\u7ec4\u4ef6\u3002<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u867d\u7136\u4e66\u6709\u70b9\u8001\u4e86\uff0c\u4e0d\u4ee3\u8868\u6240\u6709\u5185\u5bb9\u90fd\u8fc7\u65f6\u5427\u3002\u3002 Item 3 \u4fdd\u5b58\u5728\u5bb9\u5668\u4e2d\u7684\u7c7b\u8981\u6ce8\u610f\u62f7\u8d1d\u76f8\u5173\u7684\u95ee\u9898 \u5bb9\u5668\u4f1a\u5bf9\u4fdd\u5b58\u5728\u5176\u4e2d\u7684\u5bf9\u8c61\u8fdb\u884c\u62f7\u8d1d\u64cd\u4f5c\uff0c \u5bb9\u5668\u4e2d\u7684\u5bf9\u8c61\u5e94\u8be5\u5c0f\u5de7\uff0c\u907f\u514d\u62f7\u8d1d\u5e26\u6765\u7684\u6027\u80fd\u635f\u8017\uff1b \u5bb9\u5668\u4e2d\u7684\u5bf9\u8c61\u5e94\u8be5&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,6],"tags":[8,9],"class_list":["post-719","post","type-post","status-publish","format-standard","hentry","category-10","category-6","tag-c","tag-9"],"_links":{"self":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts\/719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=719"}],"version-history":[{"count":2,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts\/719\/revisions"}],"predecessor-version":[{"id":721,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts\/719\/revisions\/721"}],"wp:attachment":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}