Вектор в C++ Стандартная библиотека шаблонов (STL) с примером
⚡ Умное резюме
Вектор в C++ Это динамический массив из стандартной библиотеки шаблонов, который автоматически изменяет свой размер при добавлении или удалении элементов, храня элементы в непрерывной памяти, чтобы программисты могли получать к ним доступ и перемещаться по ним с помощью итераторов.

Что такое C++ Вектор?
A C++ Вектор — это динамический массив, способный автоматически изменять свой размер. Изменение размера происходит после добавления или удаления элемента из вектора. Хранение обрабатывается контейнером автоматически. Элементы вектора хранятся в непрерывном хранилище. Это позволяет C++ программисты могут получать доступ к элементам вектора и перемещаться по ним с помощью итераторов.
Вставка новых данных в вектор осуществляется в его конце. Это занимает дифференциальное время. Удаление элемента из вектора занимает постоянное время. Причина в том, что нет необходимости изменять размер вектора. Вставка или удаление элемента в начале вектора занимает линейное время.
Прежде чем писать код с использованием векторов, полезно знать, когда именно к ним следует обращаться.
Когда использовать вектор?
A C++ Вектор следует использовать при следующих обстоятельствах:
- При работе с элементами данных, которые постоянно изменяются.
- Если размер данных неизвестен до начала работы, вектор не потребует от вас указания максимального размера контейнера.
Как инициализировать векторы в C++
Синтаксис векторов в C++ это:
vector <data-type> name (items)
Как показано выше, мы начинаем с ключевого слова вектор.
- тип данных — это тип данных элементов, которые будут храниться в векторе.
- имя — это название вектора или элементов данных.
- пункты Укажите количество элементов в векторных данных. Этот параметр является необязательным.
После создания вектора итераторы предоставляют способ перемещения по его элементам, подобный указателю.
итераторы
Итераторы предназначены для доступа к элементам, хранящимся в векторе. Это объект, работающий как указатель. Вот наиболее распространенные итераторы, поддерживаемые вектором. C++ векторы:
- vector::begin(): он дает итератор, указывающий на первый элемент вектора.
- vector::end(): он дает итератор, указывающий на последний элемент вектора.
- вектор::cbegin(): Это то же самое, что и vector::begin(), но оно не позволяет изменять элементы.
- вектор::cend(): Это то же самое, что и vector::end(), но не может изменять элементы вектора.
В следующем примере вектор заполняется, а затем по нему осуществляется обход с помощью изменяемых и постоянных итераторов.
Пример 1
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums; for (int a = 1; a <= 5; a++) nums.push_back(a); cout << "Output from begin and end: "; for (auto a = nums.begin(); a != nums.end(); ++a) cout << *a << " "; cout << "\nOutput from cbegin and cend: "; for (auto a = nums.cbegin(); a != nums.cend(); ++a) cout << *a << " "; return 0; }
Выход:
Вот скриншот кода:
Code Объяснение:
- Включите заголовочный файл iostream в наш код. Это позволит нам читать и писать в консоль.
- Включите векторный заголовочный файл в наш код. Это позволит нам работать с векторами в C++.
- Включите пространство имен std, чтобы использовать его классы и функции, не вызывая его.
- Вызовите функцию main(), внутри которой должна быть добавлена логика программы.
- { отмечает начало тела функции main().
- Объявите вектор с именем nums для хранения набора целых чисел.
- Создайте цикл for, чтобы перебирать элементы вектора. Переменная поможет нам перебирать элементы вектора с 1-го по 5-й.
- Вставьте элементы в вектор num сзади. Для каждой итерации это будет добавлять к вектору текущее значение переменной a, которое составляет от 1 до 5.
- Напечатайте текст на консоли.
- Используйте переменную-итератор a для перебора элементов векторных чисел от начала до элемента за концом. Обратите внимание, что мы используем итераторы Vector::begin() и вектор::end().
- Выведите значения, на которые указывает переменная итератора a, на консоли для каждой итерации.
- Напечатайте текст на консоли. \n — это символ новой строки, перемещающий курсор на новую строку для печати оттуда.
- Используйте переменную-итератор для перебора элементов вектора nums от начала до конца. Обратите внимание, что мы используем итераторы vector::cbegin() и vector::cend().
- Выведите значения, на которые указывает переменная итератора a, на консоли для каждой итерации.
- Основная функция должна возвращать значение, если программа работает успешно.
- Конец тела функции main().
Модификаторы
Модификаторы используются для изменения значения указанного типа данных. Вот общие модификаторы в C++:
- вектор::push_back(): Этот модификатор смещает элементы сзади.
- вектор::вставка(): Для вставки новых элементов в вектор в указанном месте.
- вектор::pop_back(): Этот модификатор удаляет векторные элементы сзади.
- вектор:: стереть(): Он используется для удаления диапазона элементов из указанного места.
- вектор::очистить(): Он удаляет все векторные элементы.
В следующем примере эти модификаторы применяются последовательно, чтобы увидеть, как изменяется вектор.
Пример 2
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums; nums.assign(5, 1); cout << "Vector contents: "; for (int a = 0; a < nums.size(); a++) cout << nums[a] << " "; nums.push_back(2); int n = nums.size(); cout << "\nLast element: " << nums[n - 1]; nums.pop_back(); cout << "\nVector contents: "; for (int a = 0; a < nums.size(); a++) cout << nums[a] << " "; nums.insert(nums.begin(), 7); cout << "\nFirst element: " << nums[0]; nums.clear(); cout << "\nSize after clear(): " << nums.size(); }
Выход:
Вот скриншот кода:
Code Объяснение:
- Включите заголовочный файл iostream в наш код, чтобы использовать его функции.
- Включите файл заголовка вектора в наш код, чтобы использовать его функции.
- Включите пространство имен std, чтобы использовать его классы без его вызова.
- Вызовите функцию main(). Логика программы должна быть добавлена внутри ее тела.
- Начало тела функции main().
- Объявите вектор с именем nums для хранения целочисленных значений.
- Сохраните 5 элементов в векторных числах. Каждый со значением 1.
- Напечатайте текст на консоли.
- Используйте переменную-итератор a для перебора элементов векторных чисел.
- Выведите значения векторных чисел на консоль для каждой итерации.
- Добавьте значение 2 в конец векторных чисел.
- Объявите целочисленную переменную n для хранения размера векторных чисел.
- Распечатайте последнее значение векторных чисел рядом с другим текстом. Он должен вернуть 2.
- Удалите последний элемент из векторных чисел. 2 будут удалены.
- Вывести текст на консоль. \n перемещает курсор на новую строку, чтобы напечатать там текст.
- Используйте переменную-итератор a для перебора элементов векторных чисел.
- Выведите значения векторных чисел на консоль для каждой итерации.
- Вставьте значение 7 в начало векторных чисел.
- Распечатайте первое значение векторных чисел рядом с другим текстом. Должно вернуться 7.
- Удалите все элементы из векторных чисел.
- Напечатайте размер векторного числа рядом с другим текстом после очистки всего содержимого. Он должен вернуть 0.
- Конец тела функции main().
Рабочий диапазон
Используйте следующее Функции определить вместимость вектора:
- Размер() – Функция возвращает количество элементов в векторе.
- Макс_размер() – Функция возвращает максимальное количество элементов, которое может хранить вектор.
- Емкость() – Функция возвращает объем памяти, выделенный для вектора.
- Resize() – Изменяет размер контейнера, чтобы он вмещал n элементов. Если текущий размер вектора больше n, элементы, находящиеся в конце вектора, будут удалены. Если текущий размер вектора меньше n, дополнительные элементы будут добавлены в конец вектора.
- Пустой() – Функция возвращает true, если вектор пуст. В противном случае она возвращает false.
В этом заключительном примере отображается информация о хранении вектора и производится корректировка его объема с использованием описанных выше функций емкости.
Пример 3
#include <iostream> #include <vector> using namespace std; int main() { vector<int> vector1; for (int x = 1; x <= 10; x++) vector1.push_back(x); cout << "Vector size: " << vector1.size()<< endl; cout << "Vector capacity: " << vector1.capacity() << endl; cout << "Maximum size of vector: " << vector1.max_size()<< endl; vector1.resize(5); cout << "Vector size after resizing: " << vector1.size() << endl; if (vector1.empty() == false) cout << "Vector is not empty"<<endl; else cout << "Vector is empty"<<endl; return 0; }
Выход:
Вот скриншот кода:
Code Объяснение:
- Включите заголовочный файл iostream в наш код, чтобы использовать его функцию.
- Включите файл заголовка вектора в наш код, чтобы использовать его функции.
- Включите пространство имен std в наш код, чтобы использовать его классы, не вызывая его.
- Вызовите функцию main(). Логику программы следует добавить в тело этой функции.
- Создайте вектор с именем Vector1 для хранения целых чисел.
- Используйте цикл for для создания переменной x со значениями от 1 до 10.
- Вставьте значения переменной x в вектор.
- Напечатайте размер вектора рядом с другим текстом на консоли.
- Напечатайте емкость вектора вместе с другим текстом на консоли.
- Выведите максимальное количество элементов, которые вектор может содержать вместе с другим текстом на консоли.
- Измените размер вектора, чтобы он содержал только 5 элементов.
- Распечатайте новый размер вектора рядом с другим текстом.
- Проверьте, не пуст ли вектор.
- Выведите текст на консоль, если вектор не пуст.
- Используйте оператор else, чтобы указать, что делать, если вектор пуст.
- Текст для печати на консоли, если вектор пуст.
- Программа должна вернуть значение после успешного завершения.
- Конец тела функции main().





