![]() |
|
Программирование >> Расширенная версия языка c++
Таблица Ы. 3(продолжение) Функция-член Описание size.type size() const; void sort(); template<class Comp> void sort Comp ф сравн); void splice (Iterator /, list<T, AJIocator> &обьект\\ void splice (iterator /, list<T, Allooator> &о6ъект, iterator элемент); void splice (iterator i, list<T, Allooator> Лобъект, iterator начало, iterator конец); void swap(list<T, Allooator> Аобъект); void uniqueO; template<olass BinPred> void unlque(BlnPred пред); Возвращает хранящееся на данный момент в списке число элементов Сортирует список. Во второй форм для определения того, является ли значение одного элемента меньшим, чем значение другого, может задаваться функция сравнения фсравн Вставляет содержимое объекта объект в вызывающий список. Место вставки определяется итератором , После выполнения операции объект становится пустым Удаляет элемент, на который указывает итератор элемент, из списка, хранящегося в объекте объект, и сохраняет его в вызывающем списке. Место вставки определяется итератором i диапазон элементов, обозначенный итераторами начало и конец из списка, хранящегося в объекте объект, и сохраняет его в вызывающем списке. Место вставки определяется итератором / Обменивает элементы из вызывающего списка с элементами из объекта объект Удаляет из вызывающего списка парные элементы, Во второй форме для выяснения уникальности элементов используется предикат пред 1. НижеЪредставлен пример простого списка. , *-чт-н&лт Основные операции списка ttinclude <io3tream> #include <list> using namespace std; int main 0 listchar> 1st; создание стого списка int i; , for{i=0 10; back ( A + i); cou< Размер 1st. size () endl; list<char>::iterator p; ; cou< Содержимое: ; while (! 1st. empty О J { ..! р... c.., u p = lst.begin(}; . г cout *p; f . : j> lst.pop front 0 , I ! И > .. . . ..... return 0; -r I . i a - ) После выполнения программы на экране появится следующее: Размер - 10 Содержимое: ABCDEFGHIJ В этой программе создается список символов. Сначала создается пустой список. Затем туда помещается десять символов (буквы от А до J включительпо). Эта операция в1полняется с помощью функции push back(), которая помещает каждое следующее значение в конец существующего списка. Далее размер списка выводится на экран. После этого организуется вывод на экран содержимого списка, для чего каждый раз последовательна екают. выводят на экран и удаляют очередной первый элемент списка. Этот процесс продолжается, пока список не опустеет. 2. В предыдущем примере, пройдя список от начала до конца, мы его опустошили. Это, конечно, не обязательно. Ниже представлена переработанная версия программы. #include <iostream> tinclude <list> using namespace std; int mainO ( list<char> 1st; int i; for{i=0; i<10 ush back(A + i); cou Размер 1st. size endl; list<char>:liberator p = lst,begin(); cou Содержимое: ; while(p != 1st.end 0) { , cout *p; P++; return 0; J. В данной программе итератор р инициализируется таки зом, чтобы он указ1вал на начало списка, Затем при каждом проходе цикла итератор р инкрементируется, что заставляет его указывать на следующий элемент списка. Цикл завершится, когда итератор р укажет на конец списка. 3. Поскольку список является ртвленным, размещать элементы в нем можно как с начала списка, так и с его конца. В следующей программе создается два списка, причем во втором списке организуется обратный первому порядок расположения элементов. Элементы можно размещать не только начиная с начала списка, но также и начиная с его конца tinclude <io5tream> £, <; ttinclude <list> using namespace std; . .. int mainO ; ( . .. list<char> 1st; . list<char> revlst; . .; t int i; for(i=0; i<10 sh back(A + i) ; cou << Размер прямого списка 1st.size endl; cout << Содерж1мое прямого списка: ; list<char>::iterator p; Удаление элементов из первого списка и размещение их в обратном порядке во втором списке while(list.empty О) { р cout *р; 1st .pop frQn.t О ; revlst.pushfront(*p); cout endl; cou << Размер обратного списка = ; -. г cout revlst.size( endl; cout Содержшюе обратного списка: ; while(p != revlst.end{)) { . cout *p; . p+t;
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |