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

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

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

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