Что такое вектор C ++?
С ++ ВЕКТОР представляет собой динамический массив , способные изменения размера автоматически. Изменение размера происходит после того, как элемент был добавлен или удален из вектора. Хранение осуществляется автоматически контейнером. Элементы вектора хранятся в непрерывном хранилище. Это позволяет программистам на C ++ получать доступ к элементам вектора и перемещаться по ним с помощью итераторов.
Вставка новых данных в вектор выполняется в его конце. Это занимает разное время. Удаление элемента из вектора занимает постоянное время. Причина в том, что нет необходимости изменять размер вектора. Вставка или удаление элемента в начале вектора занимает линейное время.
В этом руководстве по C ++ вы узнаете:
- Что такое вектор C ++?
- Когда использовать вектор?
- Как инициализировать векторы в C ++
- Итераторы
- Модификаторы
- Пример 1
- Пример 2
- Емкость
- Пример 3
Когда использовать вектор?
Вектор C ++ следует использовать в следующих случаях:
- При работе с постоянно изменяющимися элементами данных.
- Если размер данных до начала неизвестен, для вектора не потребуется устанавливать максимальный размер контейнера.
Как инициализировать векторы в C ++
Синтаксис векторов в C ++:
vectorname (items)
- Как показано выше, мы начинаем с ключевого слова vector.
- Тип данных - это тип данных элементов, которые будут храниться в векторе.
- Имя - это имя вектора или элементов данных.
- Пункты обозначают количество элементов данных вектора. Этот параметр не является обязательным.
Итераторы
Цель итераторов - помочь нам получить доступ к элементам, хранящимся в векторе. Это объект, который работает как указатель. Вот общие итераторы, поддерживаемые векторами C ++:
- vector :: begin (): дает итератор, указывающий на первый элемент вектора.
- vector :: end (): дает итератор, который указывает на элемент вектора, прошедший за конец.
- vector :: cbegin (): это то же самое, что vector :: begin (), но у него нет возможности изменять элементы.
- vector :: cend (): то же самое, что vector :: end (), но не может изменять векторные элементы.
Модификаторы
Модификаторы используются для изменения значения указанного типа данных. Вот общие модификаторы в C ++:
- vector :: push_back (): этот модификатор толкает элементы сзади.
- vector :: insert (): для вставки новых элементов в вектор в указанном месте.
- vector :: pop_back (): этот модификатор удаляет векторные элементы сзади.
- vector :: erase (): используется для удаления диапазона элементов из указанного места.
- vector :: clear (): удаляет все элементы вектора.
Пример 1
#include#include using namespace std;int main(){vector 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;}
Выход:
Вот скриншот кода:
Пояснение к коду:
- Включите файл заголовка iostream в наш код. Это позволит нам читать и писать на консоли.
- Включите файл заголовка вектора в наш код. Это позволит нам работать с векторами на C ++.
- Включите пространство имен std, чтобы использовать его классы и функции, не вызывая его.
- Вызвать функцию main (), внутри которой нужно добавить логику программы.
- {Отмечает начало тела функции main ().
- Объявите вектор с именем nums для хранения набора целых чисел.
- Создайте цикл for, который поможет нам перебирать вектор. Переменная поможет нам перебирать элементы вектора, от 1- го до 5- го элементов.
- Вставьте элементы в вектор с номером сзади. Для каждой итерации это добавит в вектор текущее значение переменной a, которое составляет от 1 до 5.
- Напечатайте текст на консоли
- Используйте переменную итератора a, чтобы перебирать элементы векторных чисел от начала до последнего элемента. Обратите внимание, что мы используем итераторы vector :: begin () и vector :: end ().
- Выведите значения, на которые указывает переменная итератора an, на консоли для каждой итерации.
- Напечатайте текст на консоли. \ N - это символ новой строки, перемещающий курсор на новую строку для печати оттуда.
- Используйте переменную итератора, чтобы перебирать элементы векторных чисел от начала до последнего элемента. Обратите внимание, что мы используем итераторы vector :: cbegin () и vector :: cend ().
- Выведите значения, на которые указывает переменная итератора a, на консоли для каждой итерации.
- Функция main должна возвращать значение, если программа выполняется успешно.
- Конец тела функции main ().
Пример 2
#include#include using namespace std;int main(){vector 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();}
Выход:
Вот скриншот кода:
Пояснение к коду:
- Включите файл заголовка iostream в наш код, чтобы использовать его функции.
- Включите файл заголовка вектора в наш код, чтобы использовать его функции.
- Включите пространство имен std, чтобы использовать его классы, не вызывая его.
- Вызовите функцию main (). Логика программы должна быть добавлена внутрь ее тела.
- Начало тела функции main ().
- Объявите вектор с именем nums для хранения некоторых целочисленных значений.
- Сохраните 5 элементов в векторных числах. Каждый имеет значение 1.
- Напечатайте текст на консоли
- Используйте переменную итератора a для перебора элементов векторных чисел.
- Вывести значения векторных номеров на консоль для каждой итерации.
- Добавьте значение 2 в конец номеров векторов.
- Объявите целочисленную переменную n для хранения размера векторных чисел.
- Выведите последнее значение векторных чисел рядом с другим текстом. Он должен вернуть 2.
- Удалите последний элемент из числа векторов. 2 будут удалены.
- Напечатайте текст на консоли. \ N перемещает курсор на новую строку, чтобы напечатать там текст.
- Используйте переменную итератора a для перебора элементов векторных чисел.
- Вывести значения векторных номеров на консоль для каждой итерации.
- Вставьте значение 7 в начало номеров векторов.
- Выведите первое значение векторных чисел рядом с другим текстом. Он должен вернуть 7.
- Удалите все элементы из векторных номеров.
- Распечатайте размер вектора рядом с другим текстом после очистки всего содержимого. Он должен вернуть 0.
- Конец тела функции main ().
Емкость
Используйте следующие функции для определения емкости вектора:
- Size () - возвращает количество элементов в векторе.
- Max_size () - возвращает максимальное количество элементов, которое может хранить вектор.
- Capacity () - возвращает объем дискового пространства, выделенного вектору.
- Resize () - изменяет размер контейнера, чтобы он содержал n элементов. Если текущий размер вектора больше n, задние элементы будут удалены из вектора. Если текущий размер вектора меньше n, дополнительные элементы будут добавлены в конец вектора.
- Empty () -i t возвращает true, если вектор пуст, иначе возвращает false.
Пример 3
#include#include using namespace std;int main() {vector 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"< Выход:
Вот скриншот кода:
Пояснение к коду:
- Включите файл заголовка iostream в наш код, чтобы использовать его функцию.
- Включите файл заголовка вектора в наш код, чтобы использовать его функции.
- Включите пространство имен std в наш код, чтобы использовать его классы без его вызова.
- Вызовите функцию main (). Логика программы должна быть добавлена в тело этой функции.
- Создайте вектор с именем vector1 для хранения целых чисел.
- Используйте цикл for для создания переменной x со значениями от 1 до 10.
- Вставьте значения переменной x в вектор.
- Напечатайте размер вектора рядом с другим текстом на консоли.
- Напечатайте емкость вектора рядом с другим текстом на консоли.
- Выведите максимальное количество элементов, которые вектор может содержать рядом с другим текстом на консоли.
- Измените размер вектора, чтобы он содержал только 5 элементов.
- Напечатайте новый размер вектора рядом с другим текстом.
- Проверить, не пустой ли вектор.
- Напечатайте текст на консоли, если вектор не пустой.
- Используйте оператор else, чтобы указать, что делать, если вектор пуст.
- Текст для печати на консоли, если вектор пуст.
- Программа должна вернуть значение после успешного завершения.
- Конец тела функции main ().
Резюме:
- Вектор C ++ - это динамический массив, способный автоматически изменять размер при добавлении или удалении элемента.
- Хранение вектора обрабатывается автоматически контейнером.
- Элементы вектора хранятся в непрерывном хранилище, чтобы к ним можно было получить доступ, а затем пройти их с помощью итераторов.
- Вставка новых данных в вектор выполняется в его конце.
- Вставка данных в вектор занимает разное время.
- Удаление элемента из вектора занимает постоянное время.
- Вставка или удаление элемента в начале занимает линейное время.
- Векторы следует использовать при работе с постоянно изменяющимися элементами данных.
- Кроме того, вы можете использовать векторы, если размер данных не был известен до начала.