Программирование >>  Расширенная версия языка c++ 

1 ... 141 142 143 [ 144 ] 145 146 147 ... 227


Таблица Ы. 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;



1 ... 141 142 143 [ 144 ] 145 146 147 ... 227

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика