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

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

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

vector<>

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

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

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

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

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

03.03.2012

www.cppNewb.ru

41

Объявление vector

template <class T,

class Allocator = allocator<T> > class vector

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

03.03.2012

www.cppNewb.ru

42

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

по индексу

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

с концов

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

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

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

03.03.2012

www.cppNewb.ru

43

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

T& at(int i)

с контролем выхода за пределы

T& operator[](int i)

без контроля выхода за пределы

пример:

data.at(iBest) = iCurrent;

iNext = data.at(j);

data[iBest] = iCurrent;

03.03.2012

www.cppNewb.ru

44

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

T& front()

первый элемент

T& back()

последний элемент

03.03.2012

www.cppNewb.ru

45

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

const T& operator[](int i) const const T& at(int i) const

const T& front() const

const T& back() const

03.03.2012

www.cppNewb.ru

46

Размеры vector

size

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

empty

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

capacity

максимальное число элементов (буфер)

max_size

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

resize

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

reserve

гарантировать размер буфера (не меньше)

03.03.2012

www.cppNewb.ru

47

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

void clear()

удалить все элементы

03.03.2012

www.cppNewb.ru

48

Обмен содержимым для массивов

void

swap(vector<T, Allocator>& vec)

пример:

best.swap(worst);

03.03.2012

www.cppNewb.ru

49