Библиотека 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 | замена Меняет содержимое двух векторов. |