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

polevoy_cpp_2012_spring_lecture_10

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

Объявление 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]