// cont/mset1.cpp #include #include using namespace std; int main() { /* Тип коллекции: * - дубликаты разрешены * - элементы типа int * - сортировка по убыванию */ typedef multiset > IntSet; IntSet coll1; // Пустое мультимножество // Вставка элементов в произвольном порядке coll1.insert(4); coll1.insert(3); coll1.insert(5); coll1.insert(1); coll1.insert(6); coll1.insert(2); coll1.insert(5); // Перебор и вывод всех элементов IntSet::iterator pos; for (pos = coll1.begin(); pos != coll1.end(); ++pos) { cout << *pos << ' '; } cout << endl; // Повторная вставка значения 4 и обработка возвращаемого значения IntSet::iterator ipos = coll1.insert(4); cout << "4 inserted as element " << distance(coll1.begin(),ipos) + 1 << endl; // Присваивание элементов другому множеству, // упорядоченному по возрастанию multiset coll2(coll1.begin(), coll1.end()); // Вывод всех элементов копии copy (coll2.begin(), coll2.end(), ostream_iterator(cout," ")); cout << endl; // Удаление всех элементов до элемента со значением 3 coll2.erase (coll2.begin(), coll2.find(3)); // Удаление всех элементов со значением 5 int num; num = coll2.erase (5); cout << num << " element(s) removed" << endl; // Вывод всех элементов copy (coll2.begin(), coll2.end(), ostream_iterator(cout," ")); cout << endl; }