vector

Класс vector поддерживает динамический массив. Спецификация его шаблона имеет следующий вид.

Копировать
template <class T, class Allocator = allocator<T>> class vector

Здесь Т - тип сохраняемых данных, a Allocator задает распределитель. Класс vector имеет следующие конструкторы.

Копировать
explicit vector(const Allocator &a = Allocator());
explicit vector(size_type num, const Т &val = T(),
const Allocator &a = Allocator());
vector(const vector<T, Allocator> &ob);
template <class InIter> vector(InIter start, InIter end,
const Allocator &a = Allocator());

Первая форма конструктора создает пустой вектор. Вторая создает вектор, который содержит num элементов со значением val. Третья создает вектор, который содержит те же элементы, что и вектор ob. Четвертая создает вектор, который содержит элементы в диапазоне, заданном параметрами start и end.

Для класса vector определены следующие операторы сравнения: ==, <, <=, !=, > и >=.

Класс vector содержит следующие функции-члены.

Функция-член Назначение
template <class InIter> void assign(InIter start, InIter end); Помещает в вектор последовательность, определяемую параметрами start и end
void assign(size_type num, const Т &val) Помещает в вектор num элементов со значением val
reference at(size_type i);
const_reference at(size_type i) const;
Возвращает ссылку на элемент, заданный параметром i
reference back();
const_reference back() const;
Возвращает ссылку на последний элемент в векторе
iterator begin();
const_iterator begin() const;
Возвращает итератор для первого элемента в векторе
size_type capacity() const; Возвращает текущую емкость вектора, которая представляет собой количество элементов, способное храниться в векторе до того, как возникнет необходимость в выделении дополнительной памяти
void clear(); Удаляет все элементы из вектора
bool empty() const; Возвращает значение истины, если используемый вектор пуст, и значение лжи в противном случае
iterator end();
const_iterator end() const;
Возвращает итератор для конца вектора
iterator erase(iterator i); Удаляет элемент, адресуемый итератором i; возвращает итератор для элемента, расположенного после удаленного элемента
iterator erase(iterator start, iterator end); Удаляет элементы в диапазоне, задаваемом параметрами start и end; возвращает итератор для элемента, расположенного за последним удаленным элементом
reference front();
const_reference front() const;
Возвращает ссылку на первый элемент в векторе
allocator_type get_allocator() const; Возвращает распределитель вектора
iterator insert(iterator i, const Т &val = T()); Вставляет значение val непосредственно перед элементом, заданным параметром i; возвращает итератор для этого элемента вектора
void insert(iterator i, size_type num, const Т &val); Вставляет num копий значения val непосредственно перед элементом, заданным параметром i
template <class InIter> void insert(iterator i, InIter start, InIter end); Вставляет в вектор последовательность, определяемую параметрами start и end, непосредственно перед элементом, заданным параметром i
size_type max_size() const; Возвращает максимальное число элементов, которое может содержать вектор
reference operator[](size_type i) const;
const_reference operator[](size_type i) const;
Возвращает ссылку на элемент, заданный параметром i
void pop_back(); Удаляет последний элемент в векторе
void push_back(const Т &val); Добавляет в конец вектора элемент со значением, заданным параметром val
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
Возвращает реверсивный итератор для конца вектора
reverse_iterator rend();
const_reverse_iterator rend() const;
Возвращает реверсивный итератор для начала вектора
void reserve(size_type num); Устанавливает емкость вектора равной не менее заданного значения num
void resize(size_type num, Т val = T()); Устанавливает размер вектора равным значению, заданному параметром num. Если вектор для этого нужно удлинить, то в его конец добавляются элементы со значением, заданным параметром val
size_type size() const; Возвращает текущее количество элементов в векторе
void swap(deque<T, Allocator> &ob); Выполняет обмен элементами данного вектора и вектора ob

В библиотеке STL также содержится специализированная версия класса vector для булевых значений. Она включает все функции класса vector и добавляет еще два члена.

void flip(); Инвертирует значения всех битов в векторе
static void swap(reference i, reference j); Переставляет местами биты, заданные параметрами i и j