// cont/list1.cpp #include #include #include using namespace std; void printLists (const list& l1, const list& l2) { cout << "list1: "; copy (l1.begin(), l1.end(), ostream_iterator(cout," ")); cout << endl << "list2: "; copy (l2.begin(), l2.end(), ostream_iterator(cout," ")); cout << endl << endl; } int main() { // Создание двух пустых списков list list1, list2; // Заполнение обоих списков элементами for (int i=0; i<6; ++i) { list1.push_back(i); list2.push_front(i); } printLists(list1, list2); // Вставка всех элементов list1 перед первым элементом // со значением 3 в list2 // - find() возвращает итератор на первый элемент со значением 3 list2.splice(find(list2.begin(),list2.end(), // Позиция в приемнике 3), list1); // Источник printLists(list1, list2); // Перемещение первого элемента в конец list2.splice(list2.end(), // Позиция в приемнике list2, // Источник list2.begin()); // Позиция в источнике printLists(list1, list2); // Сортировка второго списка, присваивание list1 // и удаление дубликатов list2.sort(); list1 = list2; list2.unique(); printLists(list1, list2); // Слияние двух отсортированных списков в первом списке list1.merge(list2); printLists(list1, list2); }