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

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

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

reverse_iterator

•класс-адаптер для iterator

•для [f, l) интервал

[reverse_iterator(l), reverse_iterator(f)) содержит

значения в обратном порядке

•основное тождество

&*(reverse_iterator(i)) == &*(i - 1)

&*r == &*(r.base() - 1)

14.04.2012

cppNewb.ru

41

Заголовочные файлы

• совпадают с именем контейнера

<vector>

<list>

<deque>

<set> - в т.ч. multiset <map> - в т.ч. multimap

• вспомогательные

<utility>

<iterator>

14.04.2012

cppNewb.ru

42

vector<>

•динамический массив

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

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

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

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

14.04.2012

cppNewb.ru

43

Объявление vector

template <class T,

class Allocator = allocator<T> > class vector

vector<bool> - специализация

14.04.2012

cppNewb.ru

44

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

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

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

•по индексу

–замена встроенным массивам

•с концов

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

14.04.2012

cppNewb.ru

45

Доступ к элементам vector через итератор

•iterator begin()

–начало интервала

•iterator end()

–конец интервала

•reverse_iterator rbegin()

•reverse_iterator rend()

14.04.2012

cppNewb.ru

46

Доступ к элементам vector (если контейнер const)

const_iterator begin () const

const_iterator end () const

14.04.2012

cppNewb.ru

47

Заполнение массива

•template<class InpI> void

assign(InpI fst, InpI lst)

–скопировать диапазон

•void

assign(size_type n, const T& u)

–заполнить значениями u

14.04.2012

cppNewb.ru

48

Очистка массива

•iterator erase(iterator pos)

–удалить элемент

•iterator

erase(iterator fst, iterator lst)

–удалить элемент или интервал

14.04.2012

cppNewb.ru

49

list<>

•двусвязный список

•линейный доступ

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

позиции

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

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

14.04.2012

cppNewb.ru

50