Библиотека C ++ - <вектор>

Введение

Векторы - это контейнер последовательности, который может изменять размер. Контейнер - это объекты, содержащие данные одного типа. Контейнеры последовательности хранят элементы строго в линейной последовательности.

Vector хранит элементы в непрерывных ячейках памяти и обеспечивает прямой доступ к любому элементу с помощью оператора индекса []. В отличие от массива, вектор может сжиматься или расширяться по мере необходимости во время выполнения. Сохранение вектора осуществляется автоматически.

Для поддержки функций сжатия и расширения во время выполнения контейнер векторов может выделять некоторую дополнительную память для возможного роста, поэтому фактическая емкость контейнера превышает размер. Таким образом, по сравнению с массивом, вектор потребляет больше памяти в обмен на возможность управлять хранилищем и динамически расти эффективным способом.

Также допустимы векторы нулевого размера. В этом случае vector.begin () и vector.end () указывают на одно и то же место. Но поведение вызова front () или back () не определено.

Определение

Ниже приведено определение std :: vector из заголовочного файла <vector>.

template < class T, class Alloc = allocator<T> > class vector;

Параметры

  • T - Тип содержащегося элемента.

    T может быть заменен любым другим типом данных, включая тип, определенный пользователем.

  • Alloc - Тип объекта распределителя.

    По умолчанию используется шаблон класса распределителя, который определяет простейшую модель распределения памяти и не зависит от значения.

Типы участников

Следующие типы членов могут использоваться как параметры или возвращаемый тип функциями-членами.

Sr. No. Типы участников Определение
1 тип ценности T (Первый параметр шаблона)
2 allocator_type Alloc (Второй параметр шаблона)
3 Справка тип ценности&
4 const_reference const value_type &
5 указатель тип ценности*
6 const_pointer const value_type *
7 итератор итератор произвольного доступа к value_type
8 const_iterator итератор произвольного доступа к const value_type
9 reverse_iterator std :: reverse_iterator <итератор>
10 const_reverse_iterator std :: reverse_iterator <const_iterator>
11 size_type size_t
12 разница_тип ptrdiff_t

Функции из <vector>

Ниже приведен список всех методов из заголовка <vector>.

Конструкторы

Sr. No. Метод и описание
1 vector :: vector конструктор по умолчанию

Создает пустой контейнер без элементов.

2 vector :: vector fill конструктор

Создает контейнер с n элементами и присваивает значение val каждому элементу.

3 vector :: vector range конструктор

Создает контейнер с таким количеством элементов в диапазоне от первого до последнего.

4 vector :: vector конструктор копирования

Создает контейнер с копией каждого элемента, присутствующего в существующем контейнере x.

5 vector :: vector move конструктор

Создает контейнер с содержимым other, используя семантику перемещения .

6 vector :: vector конструктор списка инициализаторов

Создает контейнер из списка инициализаторов.

Деструктор

Sr. No. Метод и описание
1 вектор :: ~ вектор

Уничтожает контейнер, освобождая его память.

Функции-члены

Sr. No. Метод и описание
1 vector :: назначить версию заливки

Присвойте новые значения элементам вектора, заменив старые.

2 vector :: assign range version

Присвойте новые значения элементам вектора, заменив старые.

3 vector :: assign инициализатор версии списка

Присвойте новые значения элементам вектора, заменив старые.

4 vector :: at

Возвращает ссылку на элемент, присутствующий в позиции n в векторе.

5 vector :: back

Возвращает ссылку на последний элемент вектора.

6 vector :: begin

Вернуть итератор произвольного доступа, указывающий на первый элемент вектора.

7 vector :: capacity

Возвращает размер выделенного хранилища, выраженный в элементах.

8 vector :: cbegin

Возвращает постоянный итератор с произвольным доступом, который указывает на начало вектора.

9 vector :: cend

Возвращает постоянный итератор с произвольным доступом, который указывает на начало вектора.

10 vector :: clear

Уничтожает вектор, удаляя все элементы из вектора, и устанавливает размер вектора равным нулю.

11 вектор :: crbegin

Возвращает постоянный обратный итератор, указывающий на начало контейнера в обратном порядке.

12 vector :: crend

Возвращает постоянный обратный итератор, который указывает на обратный конец вектора.

13 vector :: data

Возвращает указатель на первый элемент векторного контейнера.

14 вектор :: emplace

Расширяет контейнер, вставляя новый элемент в позицию .

15 вектор :: emplace_back

Вставляет новый элемент в конец вектора.

16 vector :: empty

Проверяет, пуст ли вектор.

17 vector :: end

Возвращает итератор, который указывает на последний элемент в векторном контейнере.

18 vector :: erase position version

Удаляет один элемент из вектора.

19 vector :: стереть версию диапазона

Удаляет один элемент из вектора.

20 vector :: front

Возвращает ссылку на первый элемент вектора.

21 год вектор :: get_allocator

Возвращает распределитель, связанный с вектором.

22 vector :: insert одноэлементная версия

Расширяет итератор, вставляя новый элемент в позицию.

23 vector :: вставить версию заливки

Расширяет вектор, вставляя новый элемент в контейнер.

24 vector :: вставить версию диапазона

Расширяет вектор, вставляя новый элемент в контейнер.

25 vector :: insert move version

Расширяет вектор, вставляя новый элемент в контейнер.

26 vector :: вставить версию списка инициализаторов

Расширяет вектор, вставляя новый элемент в контейнер.

27 вектор :: max_size

Возвращает максимальное количество элементов, которое может содержать вектор.

28 vector :: operator = копировать версию

Назначьте вектору новое содержимое, заменив старое и изменив размер, если необходимо.

29 vector :: operator = переместить версию

Назначьте вектору новое содержимое, заменив старое и изменив размер, если необходимо.

30 vector :: operator = версия списка инициализаторов

Назначьте вектору новое содержимое, заменив старое и изменив размер, если необходимо.

31 год вектор :: оператор []

Возвращает ссылку на элемент, присутствующий в местоположении n .

32 вектор :: pop_back

Удаляет последний элемент из вектора и уменьшает размер вектора на единицу.

33 vector :: push_back

Вставляет новый элемент в конец вектора и увеличивает размер вектора на единицу.

34 вектор :: rbegin

Возвращает обратный итератор, указывающий на последний элемент вектора.

35 год vector :: rend

Возвращает обратный итератор, указывающий на обратный конец вектора.

36 вектор :: резерв

Запросы на резервирование емкости вектора должны содержать как минимум n элементов.

37 vector :: resize

Изменяет размер вектора.

38 vector :: shrink_to_fit

Запрашивает контейнер уменьшить его емкость до его размера.

39 вектор :: размер

Возвращает количество элементов, присутствующих в векторе.

40 vector :: swap

Меняет содержимое вектора на содержимое вектора x .

Перегруженные функции, не являющиеся членами

Sr. No. Метод и описание
1 оператор ==

Проверяет, равны ли два вектора.

2 оператор! =

Проверяет, равны ли два вектора.

3 оператор <

Проверяет, меньше ли первый вектор другого.

4 оператор <=

Проверяет, является ли первый вектор меньшим или равным другому или нет.

5 оператор>

Проверяет, больше ли первый вектор другого.

6 оператор> =

Проверяет, является ли первый вектор большим или равным другому или нет.

7 замена

Меняет содержимое двух векторов.