// cont/set1.cpp #include #include using namespace std; int main() { /* Тип коллекции: * - дубликаты запрещены * - элементы типа int * - сортировка по убыванию */ typedef set > 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 // и обработка возвращаемого значения pair status = coll1.insert(4); if (status.second) { cout << "4 inserted as element " << distance(coll1.begin(),status.first) + 1 << endl; } else { cout << "4 already exists" << endl; } // Присваивание элементов другому множеству, // упорядоченному по возрастанию set 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; }