{"id":466333,"date":"2025-07-07T21:00:25","date_gmt":"2025-07-07T21:00:25","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=466333"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=466333","title":{"rendered":"<span>\u0422\u0435\u0437\u0438\u0441\u044b \u043e std::set \u0438 std::multiset \u0432 C++<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0441\u0435\u0445 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c, \u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0441\u0432\u043e\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u042f \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c, \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u2014 \u044d\u0442\u043e \u0445\u043e\u0431\u0431\u0438 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0432\u0430\u043c \u043e\u0431 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 <code>std::set<\/code> \u0438 <code>std::multiset<\/code> \u0432 C++. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0434\u043b\u044f \u0432\u0441\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<h2>std::set<\/h2>\n<p><code>std::set<\/code>\u00a0&#8212; \u044d\u0442\u043e <strong>\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 <strong>\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445<\/strong> \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430\u00a0<code>Key<\/code>.<\/p>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430:<\/h3>\n<ul>\n<li>\n<p>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e);<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b (\u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f);<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043a\u0430\u043a \u0441\u0430\u043c\u043e\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u0443\u044e\u0449\u0435\u0435\u0441\u044f \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u043e\u0438\u0441\u043a\u0430 (\u043e\u0431\u044b\u0447\u043d\u043e \u043a\u0440\u0430\u0441\u043d\u043e-\u0447\u0435\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e);<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430 O(log n);<\/p>\n<\/li>\n<li>\n<p>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043d\u0430\u0440\u0443\u0448\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<\/h4>\n<pre><code class=\"cpp\">#include &lt;iostream&gt; #include &lt;set&gt;  int main() {     std::set&lt;int&gt; numbers = {5, 3, 8, 1, 3, 7}; \/\/ \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442 3 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d          \/\/ \u0412\u044b\u0432\u043e\u0434 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b)     for (int num : numbers) {         std::cout &lt;&lt; num &lt;&lt; \" \"; \/\/ 1 3 5 7 8     }          \/\/ \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430     numbers.insert(4);          \/\/ \u041f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430     if (numbers.find(5) != numbers.end()) {         std::cout &lt;&lt; \"\\n5 found in set\";     }          \/\/ \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430     numbers.erase(3);          return 0; }<\/code><\/pre>\n<h2>std::multiset<\/h2>\n<p><code>std::multiset<\/code>\u00a0\u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430\u00a0<code>std::set<\/code>, \u043d\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435\u043c &#8212; \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430:<\/h3>\n<ul>\n<li>\n<p>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043a\u0430\u043a \u0441\u0430\u043c\u043e\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u0443\u044e\u0449\u0435\u0435\u0441\u044f \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u043e\u0438\u0441\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430 O(log n).<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<\/h4>\n<pre><code class=\"cpp\">#include &lt;iostream&gt; #include &lt;set&gt;  int main() {     std::multiset&lt;int&gt; numbers = {5, 3, 8, 1, 3, 7}; \/\/ \u043e\u0431\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 3 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b          \/\/ \u0412\u044b\u0432\u043e\u0434 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432     for (int num : numbers) {         std::cout &lt;&lt; num &lt;&lt; \" \"; \/\/ 1 3 3 5 7 8     }          \/\/ \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u0430     numbers.insert(3); \/\/ \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 3          \/\/ \u041f\u043e\u0434\u0441\u0447\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432     std::cout &lt;&lt; \"\\nNumber of 3s: \" &lt;&lt; numbers.count(3); \/\/ 3          \/\/ \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 3     numbers.erase(3); \/\/ \u0443\u0434\u0430\u043b\u0438\u0442 \u0432\u0441\u0435 \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f          return 0; }<\/code><\/pre>\n<h3>\u041e\u0431\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f\u00a0set\u00a0\u0438\u00a0multiset<\/h3>\n<p>\u041e\u0431\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442:<\/p>\n<ul>\n<li>\n<p><code>insert()<\/code>\u00a0&#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p><code>erase()<\/code>\u00a0&#8212; \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p><code>find()<\/code>\u00a0&#8212; \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p><code>count()<\/code>\u00a0&#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c;<\/p>\n<\/li>\n<li>\n<p><code>size()<\/code>\u00a0&#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><code>empty()<\/code>\u00a0&#8212; \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0443\u0441\u0442\u043e\u0442\u0443;<\/p>\n<\/li>\n<li>\n<p><code>clear()<\/code>\u00a0&#8212; \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p><code>lower_bound()<\/code>,\u00a0<code>upper_bound()<\/code>,\u00a0<code>equal_range()<\/code>\u00a0&#8212; \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c?<\/h3>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>std::set<\/code>, \u0435\u0441\u043b\u0438:<\/p>\n<ul>\n<li>\n<p>\u041d\u0443\u0436\u043d\u044b \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u0436\u043d\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u043e\u0438\u0441\u043a.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>std::multiset<\/code>, \u0435\u0441\u043b\u0438:<\/p>\n<ul>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b \u043e\u00a0std::set\u00a0\u0438\u00a0std::multiset<\/h3>\n<ol>\n<li>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435:<\/strong><\/p>\n<ul>\n<li>\n<p><code>std::set<\/code>\u00a0\u0445\u0440\u0430\u043d\u0438\u0442\u00a0<strong>\u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435<\/strong>\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p><code>std::multiset<\/code>\u00a0\u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u00a0<strong>\u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041e\u0431\u0449\u0438\u0435 \u0447\u0435\u0440\u0442\u044b:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u00a0<strong>O(log n)<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e:<\/strong><\/p>\n<ul>\n<li>\n<p><code><strong>std::set<\/strong><\/code>\u00a0\u2013 \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b\u00a0<strong>\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435<\/strong>\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u043e\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 ID).<\/p>\n<\/li>\n<li>\n<p><code><strong>std::multiset<\/strong><\/code>\u00a0\u2013 \u0435\u0441\u043b\u0438 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u00a0<strong>\u043f\u043e\u0432\u0442\u043e\u0440\u044b<\/strong>\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0446\u0435\u043d\u043e\u043a \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432, \u0433\u0434\u0435 \u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0431\u0430\u043b\u043b).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b<\/strong><\/p>\n<ul>\n<li>\n<p>\u0412\u00a0<code>set<\/code>\u00a0\u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f (\u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043a\u0438).<\/p>\n<\/li>\n<li>\n<p>\u0412\u00a0<code>multiset<\/code>\u00a0\u043c\u0435\u0442\u043e\u0434\u00a0<code>erase(value)<\/code>\u00a0\u0443\u0434\u0430\u043b\u044f\u0435\u0442\u00a0<strong>\u0432\u0441\u0435<\/strong>\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0442\u0430\u043a\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c (\u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0434\u0438\u043d, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>erase(iterator)<\/code>).<\/p>\n<\/li>\n<li>\n<p><code>count(key)<\/code>\u00a0\u0432\u00a0<code>set<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<strong>0 \u0438\u043b\u0438 1<\/strong>, \u0430 \u0432\u00a0<code>multiset<\/code>\u00a0\u2013 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th data-colwidth=\"160\" width=\"160\">\n<p align=\"left\">\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0439<\/p>\n<\/th>\n<th>\n<p align=\"left\"><code>std::set<\/code><\/p>\n<\/th>\n<th>\n<p align=\"left\"><code>std::multiset<\/code><\/p>\n<\/th>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><strong>\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><strong>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u00a0<code>&lt;<\/code>)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><strong>\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0443\u0431\u043b\u0435\u0439<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><code><strong>erase(value)<\/strong><\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u043e\u0434\u0438\u043d (\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0434\u0430\u043b\u044f\u0435\u0442\u00a0<strong>\u0432\u0441\u0435<\/strong>\u00a0\u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><strong>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<hr\/>\n<h2>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u00a0std::set\u00a0\u0438\u00a0std::multiset<\/h2>\n<h3>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h3>\n<ol>\n<li>\n<p><code><strong>insert()<\/strong><\/code>: \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code><strong>emplace()<\/strong><\/code>: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 (\u0431\u0435\u0437 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f)<\/p>\n<\/li>\n<li>\n<p><code><strong>emplace_hint()<\/strong><\/code>: \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ol>\n<h4>\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432\u00a0std::set\u00a0(\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b)<\/h4>\n<pre><code class=\"cpp\">std::set&lt;int&gt; unique_numbers;  \/\/ 1. \u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430 (\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 pair&lt;iterator, bool&gt;) auto result = unique_numbers.insert(42); if (result.second) {     std::cout &lt;&lt; \"Insert successful\\n\"; }  \/\/ 2. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 auto hint = unique_numbers.lower_bound(40); unique_numbers.insert(hint, 41);  \/\/ \u0411\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430  \/\/ 3. Emplace - \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 unique_numbers.emplace(43);  \/\/ 4. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 std::vector&lt;int&gt; numbers_to_add = {44, 45, 46}; unique_numbers.insert(numbers_to_add.begin(), numbers_to_add.end());<\/code><\/pre>\n<h4>\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432\u00a0std::multiset\u00a0(\u0441 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u0430\u043c\u0438)<\/h4>\n<pre><code class=\"cpp\">std::multiset&lt;int&gt; multi_numbers;  \/\/ 1. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430 multi_numbers.insert(10); multi_numbers.insert(10);  \/\/ \u041e\u041a - \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442  \/\/ 2. Emplace multi_numbers.emplace(11); multi_numbers.emplace(11);  \/\/ \u0414\u0443\u0431\u043b\u0438\u043a\u0430\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d  \/\/ 3. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 int values[] = {12, 12, 13}; multi_numbers.insert(std::begin(values), std::end(values));<\/code><\/pre>\n<h3>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h3>\n<ol>\n<li>\n<p><code><strong>erase()<\/strong><\/code>: \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 \u0438\u043b\u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443<\/p>\n<\/li>\n<li>\n<p><code><strong>clear()<\/strong><\/code>: \u043f\u043e\u043b\u043d\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430<\/p>\n<\/li>\n<li>\n<p><code><strong>extract()<\/strong><\/code>: (C++17) &#8212; \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u0431\u0435\u0437 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ol>\n<h4>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u0437\u00a0std::set<\/h4>\n<pre><code class=\"cpp\">std::set&lt;std::string&gt; names = {\"Alice\", \"Bob\", \"Charlie\"};  \/\/ 1. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e (\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 - 0 \u0438\u043b\u0438 1) size_t count = names.erase(\"Bob\");  \/\/ count = 1  \/\/ 2. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 auto it = names.find(\"Alice\"); if (it != names.end()) {     names.erase(it); }  \/\/ 3. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 names.erase(names.begin(), names.end());  \/\/ \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0432\u0441\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430  \/\/ 4. \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 (C++17) if (auto node = names.extract(\"Charlie\"); !node.empty()) {     \/\/ \u041c\u043e\u0436\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 set     node.value() = \"Charles\";     names.insert(std::move(node)); }<\/code><\/pre>\n<h4>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/h4>\n<h4>\u0414\u043b\u044f\u00a0std::set:<\/h4>\n<ul>\n<li>\n<p><code>insert<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>pair&lt;iterator, bool&gt;<\/code>\u00a0(\u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0438 \u0444\u043b\u0430\u0433 \u0443\u0441\u043f\u0435\u0445\u0430)<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442,\u00a0<code>insert<\/code>\u00a0\u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/p>\n<\/li>\n<li>\n<p><code>erase<\/code>\u00a0\u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 \u0438\u043b\u0438 1<\/p>\n<\/li>\n<\/ul>\n<h4>\u0414\u043b\u044f\u00a0std::multiset:<\/h4>\n<ul>\n<li>\n<p><code>insert<\/code>\u00a0\u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0441\u043f\u0435\u0448\u0435\u043d \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440<\/p>\n<\/li>\n<li>\n<p><code>erase<\/code>\u00a0\u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e<\/p>\n<\/li>\n<li>\n<p><code>find<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>insert<\/code>\/<code>emplace<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">O(log n)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439 &#8212; O(1), \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430 \u0432\u0435\u0440\u043d\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>erase<\/code>\u00a0\u043f\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443<\/p>\n<\/td>\n<td>\n<p align=\"left\">O(1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>erase<\/code>\u00a0\u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\">O(log n) + m<\/p>\n<\/td>\n<td>\n<p align=\"left\">m &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>extract<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">O(1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u043e\u0432\u0435\u0442\u044b<\/h3>\n<h4>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430<\/h4>\n<pre><code class=\"cpp\">auto hint = my_set.lower_bound(value); my_set.insert(hint, new_value);  \/\/ \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430<\/code><\/pre>\n<h4>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438<\/h4>\n<pre><code class=\"cpp\">for (auto it = my_set.begin(); it != my_set.end(); ) {     if (condition(*it)) {         it = my_set.erase(it);  \/\/ erase \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440     } else {         ++it;     } }<\/code><\/pre>\n<h4>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u0430\u043c\u0438 \u0432 multiset<\/h4>\n<pre><code class=\"cpp\">auto [first, last] = multi_set.equal_range(value); multi_set.erase(first, last);  \/\/ \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 value<\/code><\/pre>\n<h4>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u00a0extract\u00a0\u0434\u043b\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043b\u044e\u0447\u0435\u0439 (C++17+):<\/h4>\n<pre><code class=\"cpp\">if (auto node = my_set.extract(key); !node.empty()) {     node.value() = modified_value;  \/\/ \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435     my_set.insert(std::move(node)); }<\/code><\/pre>\n<hr\/>\n<h2>\u041f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u00a0std::set\u00a0\u0438\u00a0std::multiset<\/h2>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0438\u0441\u043a\u0430<\/h3>\n<p>\u041e\u0431\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<h4>1.\u00a0find(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>end()<\/code><\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b: O(log n)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">auto it = my_set.find(42); if (it != my_set.end()) {     std::cout &lt;&lt; \"Element found: \" &lt;&lt; *it &lt;&lt; \"\\n\"; } else {     std::cout &lt;&lt; \"Element not found\\n\"; }<\/code><\/pre>\n<h4>2.\u00a0count(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f\u00a0<code>set<\/code>: \u0432\u0441\u0435\u0433\u0434\u0430 0 \u0438\u043b\u0438 1<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f\u00a0<code>multiset<\/code>: \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 1<\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b: O(log n) \u0434\u043b\u044f\u00a0<code>set<\/code>, O(log n + k) \u0434\u043b\u044f\u00a0<code>multiset<\/code>\u00a0(\u0433\u0434\u0435 k &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">std::set&lt;int&gt; s = {1, 2, 3}; std::cout &lt;&lt; s.count(2); \/\/ 1 std::cout &lt;&lt; s.count(4); \/\/ 0  std::multiset&lt;int&gt; ms = {1, 2, 2, 3}; std::cout &lt;&lt; ms.count(2); \/\/ 2<\/code><\/pre>\n<h4>3.\u00a0contains(key)\u00a0(C++20)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>bool<\/code>\u00a0&#8212; \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0442\u0430\u043a\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430\u00a0<code>count()<\/code><\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b: O(log n)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">if (my_set.contains(42)) {     std::cout &lt;&lt; \"Element exists\\n\"; }<\/code><\/pre>\n<h3>\u041f\u043e\u0438\u0441\u043a \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u0445<\/h3>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f:<\/p>\n<h4>1.\u00a0lower_bound(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u2265 key.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0435\u0437\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>2.\u00a0upper_bound(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &gt; key.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0435\u0437\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>3.\u00a0equal_range(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0430\u0440\u0443 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 (<code>lower_bound<\/code>,\u00a0<code>upper_bound<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435, \u0447\u0435\u043c \u0434\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">std::set nums = {10, 20, 30, 40, 50};  \/\/ \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 [20, 40) auto low = nums.lower_bound(20);  \/\/ 20 auto high = nums.upper_bound(40); \/\/ 50  for (auto it = low; it != high; ++it) {     std::cout &lt;&lt; *it &lt;&lt; \" \"; \/\/ 20 30 40 }  \/\/ \u042d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e \u0441 equal_range auto [first, last] = nums.equal_range(30); for (auto it = first; it != last; ++it) {     std::cout &lt;&lt; *it &lt;&lt; \" \"; \/\/ 30 }<\/code><\/pre>\n<h3>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u00a0std::set<\/h3>\n<ol>\n<li>\n<p>\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b: <\/p>\n<ul>\n<li>\n<p><code>find()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<\/li>\n<li>\n<p><code>count()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 \u0438\u043b\u0438 1.<\/p>\n<\/li>\n<li>\n<p><code>equal_range()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0438\u0437 0 \u0438\u043b\u0438 1 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"cpp\">std::set&lt;std::string&gt; names = {\"Alice\", \"Bob\"};  auto it = names.find(\"Alice\"); if (it != names.end()) {     std::cout &lt;&lt; \"Found: \" &lt;&lt; *it &lt;&lt; \"\\n\"; }  auto [first, last] = names.equal_range(\"Bob\"); if (first != last) {     std::cout &lt;&lt; \"Found Bob\\n\"; }<\/code><\/pre>\n<h3>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u00a0std::multiset<\/h3>\n<ol>\n<li>\n<p>\u0414\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432: <\/p>\n<ul>\n<li>\n<p><code>find()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<\/li>\n<li>\n<p><code>count()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><code>equal_range()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"cpp\">std::multiset&lt;int&gt; grades = {85, 90, 90, 95, 100};  \/\/ \u041d\u0430\u0439\u0442\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 90 auto it = grades.find(90);  \/\/ \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 90  \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 90 size_t n = grades.count(90); \/\/ 2  \/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b 90 auto [first, last] = grades.equal_range(90); for (auto it = first; it != last; ++it) {     std::cout &lt;&lt; *it &lt;&lt; \" \"; \/\/ 90 90 }<\/code><\/pre>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u043e\u0438\u0441\u043a\u0430<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th data-colwidth=\"160\" width=\"160\">\n<p align=\"left\">\u041c\u0435\u0442\u043e\u0434<\/p>\n<\/th>\n<th data-colwidth=\"109\" width=\"109\">\n<p align=\"left\"><code>std::set<\/code><\/p>\n<\/th>\n<th data-colwidth=\"151\" width=\"151\">\n<p align=\"left\"><code>std::multiset<\/code><\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0412\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><code>find(key)<\/code><\/p>\n<\/td>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\">\u2713<\/p>\n<\/td>\n<td data-colwidth=\"151\" width=\"151\">\n<p align=\"left\">\u2713<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">O(log n)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><code>count(key)<\/code><\/p>\n<\/td>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\">\u2713<\/p>\n<\/td>\n<td data-colwidth=\"151\" width=\"151\">\n<p align=\"left\">\u2713<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (0\/1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">O(log n) \u0434\u043b\u044f set, O(log n + k) \u0434\u043b\u044f multiset<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><code>contains(key)<\/code><\/p>\n<\/td>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\">\u2713<\/p>\n<\/td>\n<td data-colwidth=\"151\" width=\"151\">\n<p align=\"left\">\u2713<\/p>\n<\/td>\n<td>\n<p align=\"left\">bool (\u0435\u0441\u0442\u044c\/\u043d\u0435\u0442)<\/p>\n<\/td>\n<td>\n<p align=\"left\">O(log n)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><code>equal_range()<\/code><\/p>\n<\/td>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\">\u2713<\/p>\n<\/td>\n<td data-colwidth=\"151\" width=\"151\">\n<p align=\"left\">\u2713<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0430\u0440\u0430 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 (\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d)<\/p>\n<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438<\/h3>\n<ol>\n<li>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430: <\/p>\n<ul>\n<li>\n<p>\u0412 C++20+ \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435\u00a0<code>contains()<\/code>\u00a0\u043a\u0430\u043a \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>count()<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>find() != end()<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438: <\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>lower_bound()<\/code>\/<code>upper_bound()<\/code>\u00a0\u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0433\u0440\u0430\u043d\u0438\u0446<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u0441\u0435\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0432\u00a0<code>multiset<\/code>\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>equal_range()<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f\u00a0<code>multiset<\/code>: <\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e\u00a0<code>find()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0441\u0435\u0445 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>equal_range()<\/code>\u00a0\u0438\u043b\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e\u00a0<code>lower_bound()<\/code>\/<code>upper_bound()<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f: <\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e,\u00a0<code>contains()<\/code>\u00a0\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435\u00a0<code>find()<\/code><\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u0432 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0439\u0442\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b, \u0437\u0430\u0442\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0439\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"cpp\">\/\/ \u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 std::set&lt;int&gt; large_set = {...}; auto low = large_set.lower_bound(100); auto high = large_set.upper_bound(200);  \/\/ \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 std::vector&lt;int&gt; result(low, high);<\/code><\/pre>\n<hr\/>\n<h2>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438 \u0432\u00a0std::set\u00a0\u0438\u00a0std::multiset<\/h2>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438<\/h3>\n<p>\u041e\u0431\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<h4>1.\u00a0equal_range(key)<\/h4>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0430\u0440\u0443 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<pre><code class=\"cpp\">auto [first, last] = my_set.equal_range(value); \/\/ first - \u043d\u0430\u0447\u0430\u043b\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \/\/ last - \u043a\u043e\u043d\u0435\u0446 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 <\/code><\/pre>\n<h4>2.\u00a0lower_bound(key)<\/h4>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439\u00a0<strong>\u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435<\/strong>\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h4>3.\u00a0upper_bound(key)<\/h4>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439\u00a0<strong>\u0431\u043e\u043b\u044c\u0448\u0435<\/strong>\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<h4>\u0414\u043b\u044f\u00a0std::set\u00a0(\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b)<\/h4>\n<pre><code class=\"cpp\">std::set numbers = {10, 20, 30, 40, 50};  \/\/ \u041f\u043e\u0438\u0441\u043a \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 [20, 40] auto low = numbers.lower_bound(20);  \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 20 auto high = numbers.upper_bound(40); \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 50  for (auto it = low; it != high; ++it) {     std::cout &lt;&lt; *it &lt;&lt; \" \"; \/\/ \u0412\u044b\u0432\u0435\u0434\u0435\u0442: 20 30 40 }  \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 equal_range (\u0434\u043b\u044f set \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 \u0438\u043b\u0438 1 \u044d\u043b\u0435\u043c\u0435\u043d\u0442) auto range = numbers.equal_range(30); if (range.first != range.second) {     std::cout &lt;&lt; \"\\nFound: \" &lt;&lt; *range.first; \/\/ 30 }<\/code><\/pre>\n<h4>\u0414\u043b\u044f\u00a0std::multiset\u00a0(\u0441 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u0430\u043c\u0438)<\/h4>\n<pre><code class=\"cpp\">std::multiset scores = {65, 70, 70, 75, 80, 80, 80};  \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043e\u0446\u0435\u043d\u043e\u043a 70 auto range = scores.equal_range(70); std::cout &lt;&lt; \"Scores 70: \"; for (auto it = range.first; it != range.second; ++it) {     std::cout &lt;&lt; *it &lt;&lt; \" \"; \/\/ 70 70 }  \/\/ \u041f\u043e\u0438\u0441\u043a \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 [70, 80) auto low = scores.lower_bound(70);  \/\/ \u041f\u0435\u0440\u0432\u044b\u0439 70 auto high = scores.upper_bound(80); \/\/ \u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e 80  std::cout &lt;&lt; \"\\nRange 70-80: \"; for (auto it = low; it != high; ++it) {     std::cout &lt;&lt; *it &lt;&lt; \" \"; \/\/ 70 70 75 80 80 80 }<\/code><\/pre>\n<h3>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<h4>1. \u041f\u043e\u0438\u0441\u043a \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/h4>\n<pre><code class=\"cpp\">std::set names = {\"Alice\", \"Bob\", \"Charlie\", \"David\", \"Eve\"};  \/\/ \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \"B\" \u0438 \"D\" \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e auto begin = names.lower_bound(\"B\"); auto end = names.upper_bound(\"D\");  for (auto it = begin; it != end; ++it) {     std::cout &lt;&lt; *it &lt;&lt; \"\\n\"; \/\/ Bob, Charlie, David }<\/code><\/pre>\n<h4>2. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h4>\n<pre><code class=\"cpp\">std::multiset temps = {15, 18, 18, 20, 22, 23, 25};  \/\/ \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u043e\u0442 18 \u0434\u043e 23 (\u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044f 23) auto first = temps.lower_bound(18); auto last = temps.lower_bound(23); temps.erase(first, last);  \/\/ temps \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442: 15, 23, 25<\/code><\/pre>\n<h4>3. \u041f\u043e\u0434\u0441\u0447\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435<\/h4>\n<pre><code class=\"cpp\">std::multiset data = {1, 2, 2, 3, 3, 3, 4, 5};  auto low = data.lower_bound(2); auto high = data.upper_bound(4); size_t count = std::distance(low, high); \/\/ 6 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (2,2,3,3,3,4)<\/code><\/pre>\n<h3>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438<\/h3>\n<ol>\n<li>\n<p>\u0414\u043b\u044f\u00a0<code>std::set<\/code>: <\/p>\n<ul>\n<li>\n<p><code>equal_range(key)<\/code>\u00a0\u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0438\u0437 0 \u0438\u043b\u0438 1 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>lower_bound(key)<\/code>\u00a0\u0438\u00a0<code>upper_bound(key)<\/code>\u00a0\u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0432\u043d\u044b, \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f\u00a0<code>std::multiset<\/code>: <\/p>\n<ul>\n<li>\n<p><code>equal_range(key)<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/li>\n<li>\n<p><code>lower_bound(key)<\/code>\u00a0\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u2265 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>upper_bound(key)<\/code>\u00a0\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &gt; \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0437\u0430 O(log n) \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a<\/p>\n<\/li>\n<\/ol>\n<h3>\u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u043a\u0438<\/h3>\n<h4>1. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u0440\u0430\u0442\u043e\u0440\u043e\u0432<\/h4>\n<pre><code class=\"cpp\">struct CaseInsensitiveCompare {     bool operator()(const std::string&amp; a, const std::string&amp; b) const {         return std::lexicographical_compare(             a.begin(), a.end(), b.begin(), b.end(),             [](char c1, char c2) { return tolower(c1) &lt; tolower(c2); }         );     } };  std::set&lt;std::string, CaseInsensitiveCompare&gt; words = {\"Apple\", \"banana\", \"Cherry\"};  \/\/ \u041f\u043e\u0438\u0441\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c auto range = words.equal_range(\"apple\"); \/\/ \u041d\u0430\u0439\u0434\u0435\u0442 \"Apple\"<\/code><\/pre>\n<h4>2. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438 (C++20)<\/h4>\n<pre><code class=\"cpp\">std::set numbers = {1, 2, 3, 4, 5};  \/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c view \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 [2, 4] auto view = std::ranges::subrange(     numbers.lower_bound(2),     numbers.upper_bound(4) );  for (int n : view) {     std::cout &lt;&lt; n &lt;&lt; \" \"; \/\/ 2 3 4 } <\/code><\/pre>\n<h3>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/h3>\n<ol>\n<li>\n<p>\u0414\u043b\u044f \u0447\u0430\u0441\u0442\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438: <\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0439\u0442\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>equal_range<\/code>\u00a0\u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432\u00a0<code>lower_bound<\/code>\/<code>upper_bound<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435: <\/p>\n<ul>\n<li>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0442\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0439\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0437\u0430 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0445\u043e\u0434<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"cpp\">std::multiset&lt;Employee&gt; employees;  \/\/ \u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0441\u0435\u0445 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432 \u043e\u0442\u0434\u0435\u043b\u0430 \"IT\" auto [first, last] = employees.equal_range(\"IT\"); std::for_each(first, last, [](const Employee&amp; emp) {     emp.process_salary(); });<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/925504\/\"> https:\/\/habr.com\/ru\/articles\/925504\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0441\u0435\u0445 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c, \u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0441\u0432\u043e\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u042f \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c, \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u2014 \u044d\u0442\u043e \u0445\u043e\u0431\u0431\u0438 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0432\u0430\u043c \u043e\u0431 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 <code>std::set<\/code> \u0438 <code>std::multiset<\/code> \u0432 C++. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0434\u043b\u044f \u0432\u0441\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<h2>std::set<\/h2>\n<p><code>std::set<\/code>\u00a0&#8212; \u044d\u0442\u043e <strong>\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 <strong>\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445<\/strong> \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430\u00a0<code>Key<\/code>.<\/p>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430:<\/h3>\n<ul>\n<li>\n<p>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e);<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b (\u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f);<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043a\u0430\u043a \u0441\u0430\u043c\u043e\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u0443\u044e\u0449\u0435\u0435\u0441\u044f \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u043e\u0438\u0441\u043a\u0430 (\u043e\u0431\u044b\u0447\u043d\u043e \u043a\u0440\u0430\u0441\u043d\u043e-\u0447\u0435\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e);<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430 O(log n);<\/p>\n<\/li>\n<li>\n<p>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043d\u0430\u0440\u0443\u0448\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<\/h4>\n<pre><code class=\"cpp\">#include &lt;iostream&gt; #include &lt;set&gt;  int main() {     std::set&lt;int&gt; numbers = {5, 3, 8, 1, 3, 7}; \/\/ \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442 3 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d          \/\/ \u0412\u044b\u0432\u043e\u0434 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b)     for (int num : numbers) {         std::cout &lt;&lt; num &lt;&lt; \" \"; \/\/ 1 3 5 7 8     }          \/\/ \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430     numbers.insert(4);          \/\/ \u041f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430     if (numbers.find(5) != numbers.end()) {         std::cout &lt;&lt; \"\\n5 found in set\";     }          \/\/ \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430     numbers.erase(3);          return 0; }<\/code><\/pre>\n<h2>std::multiset<\/h2>\n<p><code>std::multiset<\/code>\u00a0\u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430\u00a0<code>std::set<\/code>, \u043d\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435\u043c &#8212; \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430:<\/h3>\n<ul>\n<li>\n<p>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043a\u0430\u043a \u0441\u0430\u043c\u043e\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u0443\u044e\u0449\u0435\u0435\u0441\u044f \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u043e\u0438\u0441\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430 O(log n).<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<\/h4>\n<pre><code class=\"cpp\">#include &lt;iostream&gt; #include &lt;set&gt;  int main() {     std::multiset&lt;int&gt; numbers = {5, 3, 8, 1, 3, 7}; \/\/ \u043e\u0431\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 3 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b          \/\/ \u0412\u044b\u0432\u043e\u0434 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432     for (int num : numbers) {         std::cout &lt;&lt; num &lt;&lt; \" \"; \/\/ 1 3 3 5 7 8     }          \/\/ \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u0430     numbers.insert(3); \/\/ \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 3          \/\/ \u041f\u043e\u0434\u0441\u0447\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432     std::cout &lt;&lt; \"\\nNumber of 3s: \" &lt;&lt; numbers.count(3); \/\/ 3          \/\/ \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 3     numbers.erase(3); \/\/ \u0443\u0434\u0430\u043b\u0438\u0442 \u0432\u0441\u0435 \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f          return 0; }<\/code><\/pre>\n<h3>\u041e\u0431\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f\u00a0set\u00a0\u0438\u00a0multiset<\/h3>\n<p>\u041e\u0431\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442:<\/p>\n<ul>\n<li>\n<p><code>insert()<\/code>\u00a0&#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p><code>erase()<\/code>\u00a0&#8212; \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p><code>find()<\/code>\u00a0&#8212; \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p><code>count()<\/code>\u00a0&#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c;<\/p>\n<\/li>\n<li>\n<p><code>size()<\/code>\u00a0&#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><code>empty()<\/code>\u00a0&#8212; \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0443\u0441\u0442\u043e\u0442\u0443;<\/p>\n<\/li>\n<li>\n<p><code>clear()<\/code>\u00a0&#8212; \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p><code>lower_bound()<\/code>,\u00a0<code>upper_bound()<\/code>,\u00a0<code>equal_range()<\/code>\u00a0&#8212; \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c?<\/h3>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>std::set<\/code>, \u0435\u0441\u043b\u0438:<\/p>\n<ul>\n<li>\n<p>\u041d\u0443\u0436\u043d\u044b \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u0436\u043d\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u043e\u0438\u0441\u043a.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>std::multiset<\/code>, \u0435\u0441\u043b\u0438:<\/p>\n<ul>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b \u043e\u00a0std::set\u00a0\u0438\u00a0std::multiset<\/h3>\n<ol>\n<li>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435:<\/strong><\/p>\n<ul>\n<li>\n<p><code>std::set<\/code>\u00a0\u0445\u0440\u0430\u043d\u0438\u0442\u00a0<strong>\u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435<\/strong>\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p><code>std::multiset<\/code>\u00a0\u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u00a0<strong>\u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041e\u0431\u0449\u0438\u0435 \u0447\u0435\u0440\u0442\u044b:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u00a0<strong>O(log n)<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e:<\/strong><\/p>\n<ul>\n<li>\n<p><code><strong>std::set<\/strong><\/code>\u00a0\u2013 \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b\u00a0<strong>\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435<\/strong>\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u043e\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 ID).<\/p>\n<\/li>\n<li>\n<p><code><strong>std::multiset<\/strong><\/code>\u00a0\u2013 \u0435\u0441\u043b\u0438 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u00a0<strong>\u043f\u043e\u0432\u0442\u043e\u0440\u044b<\/strong>\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0446\u0435\u043d\u043e\u043a \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432, \u0433\u0434\u0435 \u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0431\u0430\u043b\u043b).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b<\/strong><\/p>\n<ul>\n<li>\n<p>\u0412\u00a0<code>set<\/code>\u00a0\u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f (\u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043a\u0438).<\/p>\n<\/li>\n<li>\n<p>\u0412\u00a0<code>multiset<\/code>\u00a0\u043c\u0435\u0442\u043e\u0434\u00a0<code>erase(value)<\/code>\u00a0\u0443\u0434\u0430\u043b\u044f\u0435\u0442\u00a0<strong>\u0432\u0441\u0435<\/strong>\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0442\u0430\u043a\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c (\u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0434\u0438\u043d, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>erase(iterator)<\/code>).<\/p>\n<\/li>\n<li>\n<p><code>count(key)<\/code>\u00a0\u0432\u00a0<code>set<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<strong>0 \u0438\u043b\u0438 1<\/strong>, \u0430 \u0432\u00a0<code>multiset<\/code>\u00a0\u2013 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th data-colwidth=\"160\" width=\"160\">\n<p align=\"left\">\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0439<\/p>\n<\/th>\n<th>\n<p align=\"left\"><code>std::set<\/code><\/p>\n<\/th>\n<th>\n<p align=\"left\"><code>std::multiset<\/code><\/p>\n<\/th>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><strong>\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><strong>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u00a0<code>&lt;<\/code>)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><strong>\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0443\u0431\u043b\u0435\u0439<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><code><strong>erase(value)<\/strong><\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u043e\u0434\u0438\u043d (\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0434\u0430\u043b\u044f\u0435\u0442\u00a0<strong>\u0432\u0441\u0435<\/strong>\u00a0\u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"160\" width=\"160\">\n<p align=\"left\"><strong>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<hr\/>\n<h2>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u00a0std::set\u00a0\u0438\u00a0std::multiset<\/h2>\n<h3>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h3>\n<ol>\n<li>\n<p><code><strong>insert()<\/strong><\/code>: \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code><strong>emplace()<\/strong><\/code>: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 (\u0431\u0435\u0437 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f)<\/p>\n<\/li>\n<li>\n<p><code><strong>emplace_hint()<\/strong><\/code>: \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ol>\n<h4>\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432\u00a0std::set\u00a0(\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b)<\/h4>\n<pre><code class=\"cpp\">std::set&lt;int&gt; unique_numbers;  \/\/ 1. \u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430 (\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 pair&lt;iterator, bool&gt;) auto result = unique_numbers.insert(42); if (result.second) {     std::cout &lt;&lt; \"Insert successful\\n\"; }  \/\/ 2. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 auto hint = unique_numbers.lower_bound(40); unique_numbers.insert(hint, 41);  \/\/ \u0411\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430  \/\/ 3. Emplace - \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 unique_numbers.emplace(43);  \/\/ 4. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 std::vector&lt;int&gt; numbers_to_add = {44, 45, 46}; unique_numbers.insert(numbers_to_add.begin(), numbers_to_add.end());<\/code><\/pre>\n<h4>\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432\u00a0std::multiset\u00a0(\u0441 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u0430\u043c\u0438)<\/h4>\n<pre><code class=\"cpp\">std::multiset&lt;int&gt; multi_numbers;  \/\/ 1. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430 multi_numbers.insert(10); multi_numbers.insert(10);  \/\/ \u041e\u041a - \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442  \/\/ 2. Emplace multi_numbers.emplace(11); multi_numbers.emplace(11);  \/\/ \u0414\u0443\u0431\u043b\u0438\u043a\u0430\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d  \/\/ 3. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 int values[] = {12, 12, 13}; multi_numbers.insert(std::begin(values), std::end(values));<\/code><\/pre>\n<h3>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h3>\n<ol>\n<li>\n<p><code><strong>erase()<\/strong><\/code>: \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 \u0438\u043b\u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443<\/p>\n<\/li>\n<li>\n<p><code><strong>clear()<\/strong><\/code>: \u043f\u043e\u043b\u043d\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430<\/p>\n<\/li>\n<li>\n<p><code><strong>extract()<\/strong><\/code>: (C++17) &#8212; \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u0431\u0435\u0437 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ol>\n<h4>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u0437\u00a0std::set<\/h4>\n<pre><code class=\"cpp\">std::set&lt;std::string&gt; names = {\"Alice\", \"Bob\", \"Charlie\"};  \/\/ 1. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e (\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 - 0 \u0438\u043b\u0438 1) size_t count = names.erase(\"Bob\");  \/\/ count = 1  \/\/ 2. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 auto it = names.find(\"Alice\"); if (it != names.end()) {     names.erase(it); }  \/\/ 3. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 names.erase(names.begin(), names.end());  \/\/ \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0432\u0441\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430  \/\/ 4. \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 (C++17) if (auto node = names.extract(\"Charlie\"); !node.empty()) {     \/\/ \u041c\u043e\u0436\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 set     node.value() = \"Charles\";     names.insert(std::move(node)); }<\/code><\/pre>\n<h4>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/h4>\n<h4>\u0414\u043b\u044f\u00a0std::set:<\/h4>\n<ul>\n<li>\n<p><code>insert<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>pair&lt;iterator, bool&gt;<\/code>\u00a0(\u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0438 \u0444\u043b\u0430\u0433 \u0443\u0441\u043f\u0435\u0445\u0430)<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442,\u00a0<code>insert<\/code>\u00a0\u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/p>\n<\/li>\n<li>\n<p><code>erase<\/code>\u00a0\u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 \u0438\u043b\u0438 1<\/p>\n<\/li>\n<\/ul>\n<h4>\u0414\u043b\u044f\u00a0std::multiset:<\/h4>\n<ul>\n<li>\n<p><code>insert<\/code>\u00a0\u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0441\u043f\u0435\u0448\u0435\u043d \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440<\/p>\n<\/li>\n<li>\n<p><code>erase<\/code>\u00a0\u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e<\/p>\n<\/li>\n<li>\n<p><code>find<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>insert<\/code>\/<code>emplace<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">O(log n)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439 &#8212; O(1), \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430 \u0432\u0435\u0440\u043d\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>erase<\/code>\u00a0\u043f\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443<\/p>\n<\/td>\n<td>\n<p align=\"left\">O(1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>erase<\/code>\u00a0\u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\">O(log n) + m<\/p>\n<\/td>\n<td>\n<p align=\"left\">m &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>extract<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">O(1)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u043e\u0432\u0435\u0442\u044b<\/h3>\n<h4>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430<\/h4>\n<pre><code class=\"cpp\">auto hint = my_set.lower_bound(value); my_set.insert(hint, new_value);  \/\/ \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430<\/code><\/pre>\n<h4>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438<\/h4>\n<pre><code class=\"cpp\">for (auto it = my_set.begin(); it != my_set.end(); ) {     if (condition(*it)) {         it = my_set.erase(it);  \/\/ erase \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440     } else {         ++it;     } }<\/code><\/pre>\n<h4>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u0430\u043c\u0438 \u0432 multiset<\/h4>\n<pre><code class=\"cpp\">auto [first, last] = multi_set.equal_range(value); multi_set.erase(first, last);  \/\/ \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 value<\/code><\/pre>\n<h4>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u00a0extract\u00a0\u0434\u043b\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043b\u044e\u0447\u0435\u0439 (C++17+):<\/h4>\n<pre><code class=\"cpp\">if (auto node = my_set.extract(key); !node.empty()) {     node.value() = modified_value;  \/\/ \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435     my_set.insert(std::move(node)); }<\/code><\/pre>\n<hr\/>\n<h2>\u041f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u00a0std::set\u00a0\u0438\u00a0std::multiset<\/h2>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0438\u0441\u043a\u0430<\/h3>\n<p>\u041e\u0431\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<h4>1.\u00a0find(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>end()<\/code><\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b: O(log n)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">auto it = my_set.find(42); if (it != my_set.end()) {     std::cout &lt;&lt; \"Element found: \" &lt;&lt; *it &lt;&lt; \"\\n\"; } else {     std::cout &lt;&lt; \"Element not found\\n\"; }<\/code><\/pre>\n<h4>2.\u00a0count(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f\u00a0<code>set<\/code>: \u0432\u0441\u0435\u0433\u0434\u0430 0 \u0438\u043b\u0438 1<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f\u00a0<code>multiset<\/code>: \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 1<\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b: O(log n) \u0434\u043b\u044f\u00a0<code>set<\/code>, O(log n + k) \u0434\u043b\u044f\u00a0<code>multiset<\/code>\u00a0(\u0433\u0434\u0435 k &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">std::set&lt;int&gt; s = {1, 2, 3}; std::cout &lt;&lt; s.count(2); \/\/ 1 std::cout &lt;&lt; s.count(4); \/\/ 0  std::multiset&lt;int&gt; ms = {1, 2, 2, 3}; std::cout &lt;&lt; ms.count(2); \/\/ 2<\/code><\/pre>\n<h4>3.\u00a0contains(key)\u00a0(C++20)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>bool<\/code>\u00a0&#8212; \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0442\u0430\u043a\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430\u00a0<code>count()<\/code><\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b: O(log n)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">if (my_set.contains(42)) {     std::cout &lt;&lt; \"Element exists\\n\"; }<\/code><\/pre>\n<h3>\u041f\u043e\u0438\u0441\u043a \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u0445<\/h3>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f:<\/p>\n<h4>1.\u00a0lower_bound(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u2265 key.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0435\u0437\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>2.\u00a0upper_bound(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &gt; key.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0435\u0437\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>3.\u00a0equal_range(key)<\/h4>\n<ul>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0430\u0440\u0443 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 (<code>lower_bound<\/code>,\u00a0<code>upper_bound<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435, \u0447\u0435\u043c \u0434\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">std::set nums = {10, 20, 30, 40, 50};  \/\/ \u041d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 [20, 40) auto low = nums.lower_bound(20);  \/\/ 20 auto high = nums.upper_bound(40); \/\/ 50  for (auto it = low; it != high; ++it) {     std::cout &lt;&lt; *it &lt;&lt; \" \"; \/\/ 20 30 40 }  \/\/ \u042d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e \u0441 equal_range auto [first, last] = nums.equal_range(30); for (auto it = first; it != last; ++it) {     std::cout &lt;&lt; *it &lt;&lt; \" \"; \/\/ 30 }<\/code><\/pre>\n<h3>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u00a0std::set<\/h3>\n<ol>\n<li>\n<p>\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b: <\/p>\n<ul>\n<li>\n<p><code>find()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<\/li>\n<li>\n<p><code>count()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 \u0438\u043b\u0438 1.<\/p>\n<\/li>\n<li>\n<p><code>equal_range()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0438\u0437 0 \u0438\u043b\u0438 1 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"cpp\">std::set&lt;std::string&gt; names = {\"Alice\", \"Bob\"};  auto it = names.find(\"Alice\"); if (it != names.end()) {     std::cout &lt;&lt; \"Found: \" &lt;&lt; *it &lt;&lt; \"\\n\"; }  auto [first, last] = names.equal_range(\"Bob\"); if (first != last) {     std::cout &lt;&lt; \"Found Bob\\n\"; }<\/code><\/pre>\n<h3>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u00a0std::multiset<\/h3>\n<ol>\n<li>\n<p>\u0414\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432: <\/p>\n<ul>\n<li>\n<p><code>find()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<\/li>\n<li>\n<p><code>count()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><code>equal_range()<\/code>\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"cpp\">std::multiset&lt;int&gt; grades = {85, 90, 90, 95, 100};  \/\/ \u041d\u0430\u0439\u0442\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 90 auto it = grades.find(90);  \/\/ \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 90  \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-466333","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/466333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=466333"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/466333\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=466333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=466333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=466333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}