A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2Fset_multiset%2Fmultiset_erase</id>
		<title>C++ Tutorial/set multiset/multiset erase - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2Fset_multiset%2Fmultiset_erase"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/set_multiset/multiset_erase&amp;action=history"/>
		<updated>2026-04-17T17:51:29Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/set_multiset/multiset_erase&amp;diff=2427&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/set_multiset/multiset_erase&amp;diff=2427&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:17Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/set_multiset/multiset_erase&amp;diff=2428&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/set_multiset/multiset_erase&amp;diff=2428&amp;oldid=prev"/>
				<updated>2010-05-25T10:29:42Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Demonstrating multiset erase a found element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
#include &amp;lt;functional&amp;gt;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  string s(&amp;quot;There is no distinctly native American criminal class&amp;quot;);&lt;br /&gt;
  list&amp;lt;char&amp;gt; list1(s.begin(), s.end());&lt;br /&gt;
  // Put the characters in list1 into multiset1:&lt;br /&gt;
  multiset&amp;lt;char&amp;gt; multiset1;&lt;br /&gt;
  copy(list1.begin(), list1.end(),inserter(multiset1, multiset1.end()));&lt;br /&gt;
  multiset1.erase(&amp;quot;a&amp;quot;);&lt;br /&gt;
  multiset&amp;lt;char&amp;gt;::iterator i = multiset1.find(&amp;quot;e&amp;quot;);&lt;br /&gt;
  multiset1.erase(i);&lt;br /&gt;
&lt;br /&gt;
  multiset&amp;lt;char&amp;gt;::iterator k;&lt;br /&gt;
  for (k = multiset1.begin(); k != multiset1.end(); ++k)&lt;br /&gt;
    cout &amp;lt;&amp;lt; *k;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;ATccccdeeehiiiiiiilllmmnnnnnorrrsssstttvy&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Demonstrating multiset erase functions==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
using namespace std; &lt;br /&gt;
#include &amp;lt;functional&amp;gt;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  string s(&amp;quot;There is no distinctly native American criminal class&amp;quot;);&lt;br /&gt;
  list&amp;lt;char&amp;gt; list1(s.begin(), s.end());&lt;br /&gt;
  // Put the characters in list1 into multiset1:&lt;br /&gt;
  multiset&amp;lt;char&amp;gt; multiset1;&lt;br /&gt;
  copy(list1.begin(), list1.end(),inserter(multiset1, multiset1.end()));&lt;br /&gt;
  multiset1.erase(&amp;quot;a&amp;quot;);&lt;br /&gt;
  multiset&amp;lt;char&amp;gt;::iterator k;&lt;br /&gt;
  for (k = multiset1.begin(); k != multiset1.end(); ++k)&lt;br /&gt;
    cout &amp;lt;&amp;lt; *k;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;ATccccdeeeehiiiiiiilllmmnnnnnorrrsssstttvy&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Demonstrating multiset erase functions: erase a range==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
#include &amp;lt;functional&amp;gt;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  string s(&amp;quot;There is no distinctly native American criminal class&amp;quot;);&lt;br /&gt;
  list&amp;lt;char&amp;gt; list1(s.begin(), s.end());&lt;br /&gt;
  // Put the characters in list1 into multiset1:&lt;br /&gt;
  multiset&amp;lt;char&amp;gt; multiset1;&lt;br /&gt;
  copy(list1.begin(), list1.end(),inserter(multiset1, multiset1.end()));&lt;br /&gt;
  multiset1.erase(&amp;quot;a&amp;quot;);&lt;br /&gt;
  multiset&amp;lt;char&amp;gt;::iterator i = multiset1.find(&amp;quot;e&amp;quot;);&lt;br /&gt;
  multiset&amp;lt;char&amp;gt;::iterator j = multiset1.find(&amp;quot;v&amp;quot;);&lt;br /&gt;
  multiset1.erase(i, j);&lt;br /&gt;
&lt;br /&gt;
  multiset&amp;lt;char&amp;gt;::iterator k;&lt;br /&gt;
  for (k = multiset1.begin(); k != multiset1.end(); ++k)&lt;br /&gt;
    cout &amp;lt;&amp;lt; *k;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;ATccccdvy&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==erase from begin() to end()==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
template &amp;lt;class T&amp;gt;&lt;br /&gt;
void print(T&amp;amp; c){&lt;br /&gt;
   for( typename T::iterator i = c.begin(); i != c.end(); i++ ){&lt;br /&gt;
      std::cout &amp;lt;&amp;lt; *i &amp;lt;&amp;lt; endl;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
int main( )&lt;br /&gt;
{&lt;br /&gt;
   const int num_years = 5;&lt;br /&gt;
   const char* d[num_years] = { &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;E&amp;quot; };&lt;br /&gt;
   const char* d2[num_years] = { &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot; };&lt;br /&gt;
   const char* d3[num_years] = { &amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;,  &amp;quot;4&amp;quot;, &amp;quot;5&amp;quot; };&lt;br /&gt;
   multiset&amp;lt;string&amp;gt; s1( d,d+num_years );&lt;br /&gt;
   multiset&amp;lt;string&amp;gt; s2( d2,d2+num_years );&lt;br /&gt;
   multiset&amp;lt;string&amp;gt; s3( d3,d3+num_years );&lt;br /&gt;
   print( s1 );&lt;br /&gt;
   print( s2 );&lt;br /&gt;
   print( s3 );&lt;br /&gt;
   vector&amp;lt;string&amp;gt; winner;&lt;br /&gt;
   merge( s1.begin(), s1.end(),s2.begin(), s2.end(), back_inserter( winner ) );&lt;br /&gt;
   vector&amp;lt;string&amp;gt; all_winner;&lt;br /&gt;
   merge( winner.begin(), winner.end(),s3.begin(), s3.end(), back_inserter( all_winner ) );&lt;br /&gt;
   all_winner.erase( unique( all_winner.begin(), all_winner.end() ),all_winner.end() );&lt;br /&gt;
   cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; all_winner.size() &amp;lt;&amp;lt; &amp;quot; UNIQUE WINNERS\n&amp;quot;;&lt;br /&gt;
   for( vector&amp;lt;string&amp;gt;::size_type i = 0; i &amp;lt; all_winner.size(); ++i )&lt;br /&gt;
   {&lt;br /&gt;
      cout &amp;lt;&amp;lt; all_winner[i] &amp;lt;&amp;lt; &amp;quot;  &amp;quot;;&lt;br /&gt;
      if( (i+1) % 5 == 0 )&lt;br /&gt;
         cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Remove all elements up to element with value 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;/* The following code example is taken from the book&lt;br /&gt;
 * &amp;quot;The C++ Standard Library - A Tutorial and Reference&amp;quot;&lt;br /&gt;
 * by Nicolai M. Josuttis, Addison-Wesley, 1999&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright Nicolai M. Josuttis 1999.&lt;br /&gt;
 * Permission to copy, use, modify, sell and distribute this software&lt;br /&gt;
 * is granted provided this copyright notice appears in all copies.&lt;br /&gt;
 * This software is provided &amp;quot;as is&amp;quot; without express or implied&lt;br /&gt;
 * warranty, and with no claim as to its suitability for any purpose.&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    /* type of the collection:&lt;br /&gt;
     * - duplicates allowed&lt;br /&gt;
     * - elements are integral values&lt;br /&gt;
     * - descending order&lt;br /&gt;
     */&lt;br /&gt;
    typedef multiset&amp;lt;int,greater&amp;lt;int&amp;gt; &amp;gt; IntSet;&lt;br /&gt;
    IntSet coll1;        // empty multiset container&lt;br /&gt;
    // insert elements in random order&lt;br /&gt;
    coll1.insert(4);&lt;br /&gt;
    coll1.insert(3);&lt;br /&gt;
    coll1.insert(5);&lt;br /&gt;
    coll1.insert(1);&lt;br /&gt;
    coll1.insert(6);&lt;br /&gt;
    coll1.insert(2);&lt;br /&gt;
    coll1.insert(5);&lt;br /&gt;
    // iterate over all elements and print them&lt;br /&gt;
    IntSet::iterator pos;&lt;br /&gt;
    for (pos = coll1.begin(); pos != coll1.end(); ++pos) {&lt;br /&gt;
        cout &amp;lt;&amp;lt; *pos &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    // assign elements to another multiset with ascending order&lt;br /&gt;
    multiset&amp;lt;int&amp;gt; coll2(coll1.begin(),&lt;br /&gt;
                        coll1.end());&lt;br /&gt;
    &lt;br /&gt;
    // remove all elements up to element with value 3&lt;br /&gt;
    coll2.erase (coll2.begin(), coll2.find(3));&lt;br /&gt;
    // print all elements of the copy&lt;br /&gt;
    copy (coll2.begin(), coll2.end(),&lt;br /&gt;
          ostream_iterator&amp;lt;int&amp;gt;(cout,&amp;quot; &amp;quot;));&lt;br /&gt;
    cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;6 5 5 4 3 2 1&lt;br /&gt;
3 4 5 5 6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Remove all elements with value 5==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;/* The following code example is taken from the book&lt;br /&gt;
 * &amp;quot;The C++ Standard Library - A Tutorial and Reference&amp;quot;&lt;br /&gt;
 * by Nicolai M. Josuttis, Addison-Wesley, 1999&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright Nicolai M. Josuttis 1999.&lt;br /&gt;
 * Permission to copy, use, modify, sell and distribute this software&lt;br /&gt;
 * is granted provided this copyright notice appears in all copies.&lt;br /&gt;
 * This software is provided &amp;quot;as is&amp;quot; without express or implied&lt;br /&gt;
 * warranty, and with no claim as to its suitability for any purpose.&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    /* type of the collection:&lt;br /&gt;
     * - duplicates allowed&lt;br /&gt;
     * - elements are integral values&lt;br /&gt;
     * - descending order&lt;br /&gt;
     */&lt;br /&gt;
    typedef multiset&amp;lt;int,greater&amp;lt;int&amp;gt; &amp;gt; IntSet;&lt;br /&gt;
    IntSet coll1;        // empty multiset container&lt;br /&gt;
    // insert elements in random order&lt;br /&gt;
    coll1.insert(4);&lt;br /&gt;
    coll1.insert(3);&lt;br /&gt;
    coll1.insert(5);&lt;br /&gt;
    coll1.insert(1);&lt;br /&gt;
    coll1.insert(6);&lt;br /&gt;
    coll1.insert(2);&lt;br /&gt;
    coll1.insert(5);&lt;br /&gt;
    // iterate over all elements and print them&lt;br /&gt;
    IntSet::iterator pos;&lt;br /&gt;
    for (pos = coll1.begin(); pos != coll1.end(); ++pos) {&lt;br /&gt;
        cout &amp;lt;&amp;lt; *pos &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    // assign elements to another multiset with ascending order&lt;br /&gt;
    multiset&amp;lt;int&amp;gt; coll2(coll1.begin(),&lt;br /&gt;
                        coll1.end());&lt;br /&gt;
    &lt;br /&gt;
    // remove all elements with value 5&lt;br /&gt;
    int num;&lt;br /&gt;
    num = coll2.erase (5);&lt;br /&gt;
    cout &amp;lt;&amp;lt; num &amp;lt;&amp;lt; &amp;quot; element(s) removed&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    // print all elements of the copy&lt;br /&gt;
    copy (coll2.begin(), coll2.end(),&lt;br /&gt;
          ostream_iterator&amp;lt;int&amp;gt;(cout,&amp;quot; &amp;quot;));&lt;br /&gt;
    cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;6 5 5 4 3 2 1&lt;br /&gt;
2 element(s) removed&lt;br /&gt;
1 2 3 4 6&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>