////////////////////////////////////////
//      2018/04/30 11:30:09
//      multiet-erase

// removes elemeents

#include <iostream>
#include <set>

using namespace std;

void print(multiset<int, less<int>> s){
    multiset<int, less<int>>::iterator it;
    for (it = s.begin(); it != s.end(); it++){
        cout << *it << " ";
    }
    cout << endl;
}

//======================

int main(){
    int ary[] = { 1, 2, 3, 2, 3, 4, 8, 2, 5, 6 };
    multiset<int, less<int>> s;

    s.insert(ary, ary + 10);
    print(s);

    // erase all '2'
    s.erase(2);
    print(s);

    multiset<int, less<int>>::iterator it;

    it = s.find(5);

    // erase '5'
    s.erase(it);
    print(s);

    it = s.find(4);
    s.erase(it);
    print(s);
    return 0;
}

/*
OUTPUT:
    1 2 2 2 3 3 4 5 6 8
    1 3 3 4 5 6 8
    1 3 3 4 6 8
    1 3 3 6 8
*/