Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции программирование / polevoy_cpp_2012_spring_lecture_10

.pdf
Скачиваний:
32
Добавлен:
20.04.2015
Размер:
143 Кб
Скачать
☆

Объявление list<>

template

<class T,

class Allocator = allocator<T> >

class list

14.04.2012

cppNewb.ru

51

Доступ к элементам list

•через итератор

–обобщенный вариант

•с концов

•элементы произвольное расположены в памяти

14.04.2012

cppNewb.ru

52

Размеры list

•size

–число элементов

•empty

–проверка на пустоту

•max_size

–максимальное число элементов (системно)

•resize

–изменить число элементов

14.04.2012

cppNewb.ru

53

deque<>

•блочно-списочная структура

•произвольный доступ

•быстрая вставка/удаление в конец

•быстрая вставка/удаление в начало

•изменение числа элементов делает итераторы невалидными

14.04.2012

cppNewb.ru

54

pair<>

•хранение пары значений, м.б. разного типа

•сравнение пар

14.04.2012

cppNewb.ru

55

Определение pair<>

template<class T1, class T2> struct pair

{

typedef T1 first_type; typedef T2 second_type; T1 first;

T2 second;

pair() : first(T1()), second(T2()) {}

pair(const T1& x, const T2& y) : first(x), second(y) {}

template <class U, class V> pair(const pair<U, V>&p)

: first(p.first), second(p.second) { }

};

14.04.2012

cppNewb.ru

56

Сравнение pair<>

•<utility>

•определены операторы сравнения

==, <, !=, >, >= и <=

•(lhs == rhs) означает

(lhs.first == rhs.first) && (lhs.second == rhs.second)

•в сравнении на неравенство (<, >)

–сравнивается first

–если равны, то сравниваются second

14.04.2012

cppNewb.ru

57

map<>

•бинарное дерево поиска

•отображение key→value

•итераторы валидны при вставке и

удалении

–кроме удаления текущего элемента

14.04.2012

cppNewb.ru

58

Объявление map<>

template<class Key, class T, class Compare = less<Key>, class Allocator = allocator<pair<const Key,T> > >

class map

14.04.2012

cppNewb.ru

59

Доступ к элементам map

• через итератор

– обобщенный вариант

find

insert

• через индекс-ключ

T& operator[](const Key& k)

14.04.2012

cppNewb.ru

60