{"id":9486,"date":"2023-03-07T22:46:45","date_gmt":"2023-03-07T14:46:45","guid":{"rendered":"https:\/\/blog.iyatt.com\/?p=9486"},"modified":"2024-05-05T14:18:11","modified_gmt":"2024-05-05T06:18:11","slug":"%e4%bb%bf%e5%87%bd%e6%95%b0-stl-%e5%9f%ba%e7%a1%80%ef%bc%88%e7%bc%96%e8%be%91%e4%b8%ad%ef%bc%89","status":"publish","type":"post","link":"https:\/\/blog.iyatt.com\/?p=9486","title":{"rendered":"\u4eff\u51fd\u6570 &#8211; STL \u57fa\u7840"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor:pointer\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><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><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E7%8E%AF%E5%A2%83\" >\u73af\u5883<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E4%BB%BF%E5%87%BD%E6%95%B0\" >\u4eff\u51fd\u6570<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E5%9F%BA%E7%A1%80%E4%BD%BF%E7%94%A8\" >\u57fa\u7840\u4f7f\u7528<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E8%B0%93%E8%AF%8D\" >\u8c13\u8bcd<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E5%86%85%E5%BB%BA%E4%BB%BF%E5%87%BD%E6%95%B0\" >\u5185\u5efa\u4eff\u51fd\u6570<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E7%AE%97%E6%95%B0\" >\u7b97\u6570<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E5%85%B3%E7%B3%BB\" >\u5173\u7cfb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E9%80%BB%E8%BE%91\" >\u903b\u8f91<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E4%BD%8D\" >\u4f4d<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E5%93%88%E5%B8%8C\" >\u54c8\u5e0c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blog.iyatt.com\/?p=9486\/#%E5%87%BD%E6%95%B0%E9%80%82%E9%85%8D%E5%99%A8\" >\u51fd\u6570\u9002\u914d\u5668<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%E7%8E%AF%E5%A2%83\"><\/span>\u73af\u5883<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Debian 11\uff08arm64\uff09<\/p>\n<p>\u7f16\u8bd1\u5668 g++ 10.2.1\uff1b\u7f16\u8bd1\u6807\u51c6 C++20\uff1b\u53c2\u6570\uff1a-std=c++20 -no-pie -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Werror=format-security -Wextra -pedantic -Wimplicit-fallthrough -Wsequence-point -Wswitch-unreachable -Wswitch-enum -Wstringop-truncation -Wbool-compare -Wtautological-compare -Wfloat-equal -Wshadow=global -Wpointer-arith -Wpointer-compare -Wcast-align -Wcast-qual -Wwrite-strings -Wdangling-else -Wlogical-op -Wconversion -g -O0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E4%BB%BF%E5%87%BD%E6%95%B0\"><\/span>\u4eff\u51fd\u6570<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u5728\u524d\u9762\u9762\u5411\u5bf9\u8c61\u57fa\u7840\u90e8\u5206\u4e5f\u63d0\u8fc7\u4eff\u51fd\u6570\uff08<a href=\"https:\/\/blog.iyatt.com\/?p=9028\">https:\/\/blog.iyatt.com\/?p=9028<\/a> \uff09\uff0c\u4eff\u51fd\u6570\u5b9e\u8d28\u4e0a\u5c31\u662f\u5bf9 () \u5c0f\u62ec\u53f7\u8fdb\u884c\u91cd\u8f7d\uff0c\u4e5f\u88ab\u79f0\u4e3a\u51fd\u6570\u5bf9\u8c61<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E5%9F%BA%E7%A1%80%E4%BD%BF%E7%94%A8\"><\/span>\u57fa\u7840\u4f7f\u7528<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n\nclass Add\n{\n    private:\n        int m_num1, m_num2;\n\n    public:\n        int m_result;\n        int flag; \/\/ true \u52a0\u6570\u4ece\u4eff\u51fd\u6570\u4f20\u5165\uff1bfalse \u52a0\u6570\u901a\u8fc7\u6784\u9020\u51fd\u6570\u4f20\u5165\n\n        \/\/ \u9ed8\u8ba4\u6784\u9020\n        Add()\n        {\n            flag = true;\n        }\n\n        \/\/ \u6784\u9020\u6267\u884c\u521d\u59cb\u5316\n        Add(int num1, int num2) : m_num1(num1), m_num2(num2)\n        {\n            flag = false;\n        }\n\n        \/\/ \u91cd\u8f7d ()\uff0c\u5373\u4eff\u51fd\u6570\n        int operator()(int num1 = 0, int num2 = 0)\n        {\n            if (flag)\n            {\n                m_num1 = num1;\n                m_num2 = num2;\n            }\n            m_result = m_num1 + m_num2;\n            return m_result;\n        }\n};\n\nvoid test1(int num1, int num2, Add add)\n{\n    std::cout &lt;&lt; add(num1, num2) &lt;&lt; std::endl;\n}\n\nvoid test2(Add add)\n{\n    std::cout &lt;&lt; add() &lt;&lt; std::endl;\n}\n\nint main()\n{\n    Add add1; \/\/ \u5b9e\u4f8b\u5316 1\n    int result = add1(9, 1); \/\/ \u6267\u884c\u4eff\u51fd\u6570\uff0c\u53ef\u4ee5\u901a\u8fc7\u8fd4\u56de\u503c\u83b7\u53d6\u7ed3\u679c\n    std::cout &lt;&lt; result &lt;&lt; std::endl;\n\n    Add add2(1, 9); \/\/ \u5b9e\u4f8b\u5316 2\n    add2(); \/\/ \u6267\u884c\u4eff\u51fd\u6570\n    std::cout &lt;&lt; add2.m_result &lt;&lt; std::endl; \/\/ \u901a\u8fc7\u6210\u5458\u53d8\u91cf\u83b7\u53d6\u7ed3\u679c\n\n    \/\/ \u533f\u540d\u5bf9\u8c61\u7684\u5e94\u7528\uff0c\u4e0d\u5b9e\u4f8b\u5316\u521b\u5efa\u540d\u5b57\uff0c\u76f4\u63a5\u4f7f\u7528\u7c7b\u540d\u521b\u5efa\u4e00\u4e2a\u4e34\u65f6\u5bf9\u8c61\n    \/\/ \u7b2c\u4e00\u5bfe\u62ec\u53f7\u521b\u5efa\u533f\u540d\u5bf9\u8c61\uff0c\u8c03\u7528\u6784\u9020\u51fd\u6570\u521d\u59cb\u5316\uff0c\u7b2c\u4e8c\u5bf9\u62ec\u53f7\u8c03\u7528\u4eff\u51fd\u6570\u6267\u884c\n    std::cout &lt;&lt; Add(15, 5)() &lt;&lt; std::endl;\n    \/\/ \u7b2c\u4e00\u5bf9\u62ec\u53f7\u65f6\u8c03\u7528\u7684\u9ed8\u8ba4\u6784\u9020\u51fd\u6570\uff0c\u7b2c\u4e8c\u5bf9\u62ec\u53f7\u8c03\u7528\u4eff\u51fd\u6570\u5e76\u4f20\u5165\u53c2\u6570\n    std::cout &lt;&lt; Add()(15, 5) &lt;&lt; std::endl;\n\n    \/\/ \u51fd\u6570\u5bf9\u8c61\u7684\u5e94\u7528\n    \/\/ Add \u5c31\u662f\u51fd\u6570\u5bf9\u8c61\n    test1(15, 15, Add());\n    test2(Add(15, 15));\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678198590791.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 281px; --smush-placeholder-aspect-ratio: 281\/209;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E8%B0%93%E8%AF%8D\"><\/span>\u8c13\u8bcd<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u8fd4\u56de\u503c\u4e3a bool \u7684\u4eff\u51fd\u6570<\/p>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nclass Filter\n{\n    public:\n        \/\/ \u63a5\u53d7\u4e00\u4e2a\u53c2\u6570\uff0c\u4e00\u5143\u8c13\u8bcd\n        bool operator()(int num)\n        {\n            if (num &gt; 5)\n            {\n                return true;\n            }\n            return false;\n        }\n};\n\nint main()\n{\n    std::vector&lt;long&gt; v1;\n    for (int i = 0; i &lt; 10; ++i)\n    {\n        v1.push_back(random() % 10);\n    }\n\n    for (long i : v1)\n    {\n        std::cout &lt;&lt; i &lt;&lt; &quot; &quot;;\n    }\n    std::cout &lt;&lt; std::endl;\n\n    \/\/ \u5bfb\u627e\u7b2c\u4e00\u4e2a\u5927\u4e8e 5 \u7684\u6570\n    \/\/ \u4e00\u5143\u8c13\u8bcd\u4f7f\u7528\n    std::vector&lt;long&gt;::const_iterator it = std::find_if(v1.begin(), v1.end(), Filter());\n    if (it != v1.end())\n    {\n        std::cout &lt;&lt; *it &lt;&lt; std::endl;\n    }\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678199799281.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 214px; --smush-placeholder-aspect-ratio: 214\/94;\" \/><\/p>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;algorithm&gt;\n\nclass Reverse\n{\n    public:\n        bool operator()(int num1, int num2) \/\/ \u4e8c\u5143\u8c13\u8bcd\n        {\n            if (num1 &gt; num2)\n            {\n                return true;\n            }\n            return false;\n        }\n};\n\nvoid print(const std::vector&lt;long&gt; v)\n{\n    for (long i : v)\n    {\n        std::cout &lt;&lt; i &lt;&lt; &quot; &quot;;\n    }\n    std::cout &lt;&lt; std::endl;\n}\n\nint main()\n{\n    std::vector&lt;long&gt; v1;\n    for (int i = 0; i &lt; 10; ++i)\n    {\n        v1.push_back(random() % 10);\n    }\n    print(v1);\n\n    std::sort(v1.begin(), v1.end()); \/\/ \u6392\u5e8f\uff0c\u9ed8\u8ba4\u5347\u5e8f\n    print(v1);\n\n    std::sort(v1.begin(), v1.end(), Reverse()); \/\/ \u964d\u5e8f\u6392\u5e8f - \u4e8c\u5143\u8c13\u8bcd\u4f7f\u7528\n    print(v1);\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678200365591.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 166px; --smush-placeholder-aspect-ratio: 166\/112;\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E5%86%85%E5%BB%BA%E4%BB%BF%E5%87%BD%E6%95%B0\"><\/span>\u5185\u5efa\u4eff\u51fd\u6570<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>C++ \u5185\u90e8\u5df2\u7ecf\u5b9a\u4e49\u597d\u4e86\u4e00\u4e9b\u4eff\u51fd\u6570\uff0c\u4f7f\u7528\u9700\u8981\u5305\u542b\u5934\u6587\u4ef6 functional<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E7%AE%97%E6%95%B0\"><\/span>\u7b97\u6570<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u7b97\u6570\u8fd0\u7b97<\/p>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;functional&gt;\n\nint main()\n{\n    std::plus&lt;std::string&gt; plus; \/\/ \u52a0\n    std::string s1, s2;\n    s1 = &quot;abc&quot;;\n    s2 = &quot;123&quot;;\n    std::cout &lt;&lt; plus(s1, s2) &lt;&lt; std::endl;\n\n    std::cout &lt;&lt; std::minus&lt;int&gt;()(10, 6) &lt;&lt; std::endl; \/\/ \u51cf\n    std::cout &lt;&lt; std::multiplies&lt;double&gt;()(4.5, 2) &lt;&lt; std::endl; \/\/ \u4e58\n    std::cout &lt;&lt; std::divides&lt;int&gt;()(10, 5) &lt;&lt; std::endl; \/\/ \u9664\n    std::cout &lt;&lt; std::negate&lt;int&gt;()(43) &lt;&lt; std::endl; \/\/ \u76f8\u53cd\u6570\n    std::cout &lt;&lt; std::modulus&lt;int&gt;()(10, 4) &lt;&lt; std::endl; \/\/ \u53d6\u6a21\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678243743488.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 108px; --smush-placeholder-aspect-ratio: 108\/144;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E5%85%B3%E7%B3%BB\"><\/span>\u5173\u7cfb<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u6bd4\u8f83\u8fd0\u7b97<\/p>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;functional&gt;\n\nint main()\n{\n    std::cout &lt;&lt; std::equal_to&lt;std::string&gt;()(&quot;abc&quot;, &quot;123&quot;) &lt;&lt; std::endl; \/\/ \u7b49\u4e8e\n    std::cout &lt;&lt; std::not_equal_to&lt;std::string&gt;()(&quot;abc&quot;, &quot;123&quot;) &lt;&lt; std::endl; \/\/ \u4e0d\u7b49\u4e8e\n    std::cout &lt;&lt; std::less&lt;int&gt;()(10, 20) &lt;&lt; std::endl; \/\/ \u5c0f\u4e8e\n    std::cout &lt;&lt; std::less_equal&lt;int&gt;()(10, 10) &lt;&lt; std::endl; \/\/ \u5c0f\u4e8e\u7b49\u4e8e\n    std::cout &lt;&lt; std::greater&lt;int&gt;()(10, 20) &lt;&lt; std::endl; \/\/ \u5927\u4e8e\n    std::cout &lt;&lt; std::greater_equal&lt;int&gt;()(10, 20) &lt;&lt; std::endl; \/\/ \u5927\u4e8e\u7b49\u4e8e\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678244321350.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 170px; --smush-placeholder-aspect-ratio: 170\/169;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E9%80%BB%E8%BE%91\"><\/span>\u903b\u8f91<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u903b\u8f91\u8fd0\u7b97<\/p>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;functional&gt;\n\nint main()\n{\n     \/\/ \u903b\u8f91\u4e0e\n    std::cout &lt;&lt; std::logical_and&lt;bool&gt;()(true, true) &lt;&lt; std::endl;\n    std::cout &lt;&lt; std::logical_and&lt;bool&gt;()(true, false) &lt;&lt; std::endl;\n    std::cout &lt;&lt; std::logical_and&lt;bool&gt;()(false, false) &lt;&lt; std::endl;\n\n    \/\/ \u903b\u8f91\u6216\n    std::cout &lt;&lt; std::logical_or&lt;bool&gt;()(true, true) &lt;&lt; std::endl;\n    std::cout &lt;&lt; std::logical_or&lt;bool&gt;()(true, false) &lt;&lt; std::endl;\n    std::cout &lt;&lt; std::logical_or&lt;bool&gt;()(false, false) &lt;&lt; std::endl;\n\n    \/\/ \u903b\u8f91\u975e\n    std::cout &lt;&lt; std::logical_not&lt;bool&gt;()(true) &lt;&lt; std::endl;\n    std::cout &lt;&lt; std::logical_not&lt;bool&gt;()(false) &lt;&lt; std::endl;\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678245196999.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 154px; --smush-placeholder-aspect-ratio: 154\/189;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E4%BD%8D\"><\/span>\u4f4d<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u4f4d\u8fd0\u7b97<\/p>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;functional&gt;\n\nint main()\n{\n    \/\/ 10 \u4e8c\u8fdb\u5236\u662f 10010\uff0c8 \u4e8c\u8fdb\u5236\u662f\u662f 10000\n\n    std::cout &lt;&lt; std::bit_and&lt;int&gt;()(10, 8) &lt;&lt; std::endl; \/\/ \u6309\u4f4d\u4e0e\n    std::cout &lt;&lt; std::bit_or&lt;int&gt;()(10, 8) &lt;&lt; std::endl; \/\/ \u6309\u4f4d\u6216\n    std::cout &lt;&lt; std::bit_xor&lt;int&gt;()(10, 8) &lt;&lt; std::endl; \/\/ \u6309\u4f4d\u5f02\u6216\n    std::cout &lt;&lt; std::bit_not&lt;unsigned&gt;()(10) &lt;&lt; std::endl; \/\/ \u6309\u4f4d\u53d6\u53cd\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678246339808.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 136px; --smush-placeholder-aspect-ratio: 136\/107;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E5%93%88%E5%B8%8C\"><\/span>\u54c8\u5e0c<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u7528\u4e8e\u5c06\u6570\u636e\u7c7b\u578b\u8f6c\u6362\u4e3a\u54c8\u5e0c\u503c\uff0c\u7528\u4e8e\u652f\u6301\u54c8\u5e0c\u8868\u7b49\u6570\u636e\u7ed3\u6784<\/p>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;functional&gt;\n\nint main()\n{\n    std::cout &lt;&lt; std::hash&lt;const char *&gt;()(&quot;Hello world&quot;) &lt;&lt; std::endl;\n\n    std::hash&lt;const char *&gt; hash;\n    std::cout &lt;&lt; hash(&quot;hello world&quot;) &lt;&lt; std::endl;\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678247186945.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 159px; --smush-placeholder-aspect-ratio: 159\/105;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E5%87%BD%E6%95%B0%E9%80%82%E9%85%8D%E5%99%A8\"><\/span>\u51fd\u6570\u9002\u914d\u5668<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u7528\u4e8e\u5bf9\u5df2\u6709\u7684\u4eff\u51fd\u6570\u8fdb\u884c\u4fee\u6539\uff0c\u4f7f\u5176\u6ee1\u8db3\u7279\u5b9a\u7684\u9700\u6c42<\/p>\n<pre><code class=\"language-cpp\">\/\/ \u7ed1\u5b9a\u51fd\u6570\u548c\u4e00\u90e8\u5206\u53c2\u6570\n#include &lt;functional&gt;\n#include &lt;iostream&gt;\n\nvoid f(std::string s1, std::string s2, std::string s3)\n{\n    std::cout &lt;&lt; s1 &lt;&lt; &quot; &quot; &lt;&lt; s2 &lt;&lt; &quot; &quot; &lt;&lt; s3 &lt;&lt; std::endl;\n}\n\nint main()\n{\n    \/\/ f \u9700\u8981\u4f20\u5165 3 \u4e2a\u53c2\u6570\uff0c\u8fd9\u91cc\u9002\u914d\u6210\u4e24\u4e2a\u53c2\u6570\u5df2\u7ecf\u6307\u5b9a\uff0c\u53ea\u9700\u4f20\u5165\u4e00\u4e2a\u53c2\u6570\u7684 ff\n    auto ff = std::bind(f, &quot;hello&quot;, std::placeholders::_1, &quot;world&quot;);\n    ff(&quot;\u4f60\u597d&quot;);\n\n    \/\/ std::placeholders \u662f\u5360\u4f4d\u7b26\uff0c\u5fc5\u987b\u4ece _1 \u5f00\u59cb\u7f16\u53f7\uff0c\u7528\u4e8e\u9002\u914d\u540e\u7684\u51fd\u6570\u4f20\u5165\u53c2\u6570\n    auto fff = std::bind(f, &quot;123&quot;, std::placeholders::_1, std::placeholders::_2);\n    fff(&quot;\u4f60\u597d&quot;, &quot;\u4e16\u754c&quot;);\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678262491890.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 213px; --smush-placeholder-aspect-ratio: 213\/121;\" \/><\/p>\n<pre><code class=\"language-cpp\">\/\/ \u51fd\u6570\u5c01\u88c5\uff08\u666e\u901a\u51fd\u6570\u3001\u6210\u5458\u51fd\u6570\u548c Lambda \u8868\u8fbe\u5f0f\uff09\n#include &lt;iostream&gt;\n#include &lt;functional&gt;\n\nvoid fun1()\n{\n    std::cout &lt;&lt; &quot;fun1&quot; &lt;&lt; std::endl;\n}\n\nint fun2(int num1, int num2)\n{\n    return num1 * num2;\n}\n\nclass Fun3\n{\n    public:\n        int fun(int num1, int num2)\n        {\n            return num1 + num2;\n        }\n};\n\nint main()\n{\n    \/\/ \u666e\u901a\u51fd\u6570\n    std::function&lt;void()&gt; f1 = fun1;\n    f1();\n\n    std::function&lt;int(int, int)&gt; f2 = fun2;\n    std::cout &lt;&lt; f2(3, 4) &lt;&lt; std::endl;\n\n    \/\/ \u6210\u5458\u51fd\u6570\n    Fun3 fun3;\n    std::function&lt;int(Fun3&amp;, int, int)&gt; f3 = &amp;Fun3::fun;\n    std::cout &lt;&lt; f3(fun3, 7, 3) &lt;&lt; std::endl;\n\n    \/\/ Lambda \u8868\u8fbe\u5f0f\n    std::function&lt;void()&gt; f4 = [](){std::cout &lt;&lt; &quot;Lambda&quot; &lt;&lt; std::endl;};\n    f4();\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/03\/image-1678278967424.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 131px; --smush-placeholder-aspect-ratio: 131\/120;\" \/><\/p>\n<p>\u8865\u5145\uff1aLambda \u8868\u8fbe\u5f0f\u53ef\u53c2\u8003 <a href=\"https:\/\/blog.iyatt.com\/?p=9503\">https:\/\/blog.iyatt.com\/?p=9503<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u73af\u5883 Debian 11\uff08arm64\uff09 \u7f16\u8bd1\u5668 g++ 10.2.1\uff1b\u7f16\u8bd1\u6807\u51c6 C++20\uff1b\u53c2\u6570\uff1a-std=c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"zakra_page_container_layout":"customizer","zakra_page_sidebar_layout":"customizer","zakra_remove_content_margin":false,"zakra_sidebar":"customizer","zakra_transparent_header":"customizer","zakra_logo":0,"zakra_main_header_style":"default","zakra_menu_item_color":"","zakra_menu_item_hover_color":"","zakra_menu_item_active_color":"","zakra_menu_active_style":"","zakra_page_header":true,"_lmt_disableupdate":"no","_lmt_disable":"no","footnotes":""},"categories":[1],"tags":[],"class_list":["post-9486","post","type-post","status-publish","format-standard","hentry","category-all"],"modified_by":"IYATT-yx","_links":{"self":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts\/9486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9486"}],"version-history":[{"count":0,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts\/9486\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}