Що таке вектор C ++?
С ++ ВЕКТОР є динамічний масив , здатні зміни розміру автоматично. Зміна розміру відбувається після того, як елемент був доданий або видалений з вектора. Зберігання обробляється контейнером автоматично. Елементи вектора зберігаються в сусідньому сховищі. Це дозволяє програмістам на C ++ отримувати доступ до векторних елементів та переходити їх за допомогою ітераторів.
Вставка нових даних у вектор виконується в його кінці. Це займає різницю в часі. Видалення елемента з вектора займає постійний час. Причина полягає в тому, що немає необхідності змінювати розмір вектора. Вставка або видалення елемента на початку вектора займає лінійний час.
У цьому підручнику з C ++ ви дізнаєтесь:
- Що таке вектор C ++?
- Коли використовувати вектор?
- Як ініціалізувати вектори в C ++
- Ітератори
- Модифікатори
- Приклад 1
- Приклад 2
- Ємність
- Приклад 3
Коли використовувати вектор?
Вектор С ++ слід використовувати за таких обставин:
- Коли йдеться про елементи даних, які змінюються послідовно.
- Якщо розмір даних невідомий до початку, вектор не вимагатиме встановити максимальний розмір контейнера.
Як ініціалізувати вектори в C ++
Синтаксис векторів в C ++ такий:
vectorname (items)
- Як показано вище, ми починаємо з ключового слова vector.
- Тип даних - це тип даних елементів, що зберігаються у векторі.
- Ім'я - це ім'я вектора або елементів даних.
- Елементи позначають кількість елементів для даних вектора. Цей параметр необов’язковий.
Ітератори
Мета ітераторів - допомогти нам отримати доступ до елементів, які зберігаються у векторі. Це об’єкт, який працює як вказівник. Ось загальні ітератори, що підтримуються векторами С ++:
- 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 на консолі для кожної ітерації.
- Основна функція повинна повертати значення, якщо програма успішно працює.
- Кінець тіла основної () функції.
Приклад 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 (). Логіка програми повинна бути додана всередині її тіла.
- Початок тіла основної () функції.
- Оголосіть вектор з іменем nums для зберігання деяких цілих значень.
- Зберігайте 5 елементів у векторних номерах. Кожен зі значенням 1.
- Роздрукуйте текст на консолі
- Використовуйте змінну ітератора a для перебору елементів векторних чисел.
- На друкуйте значення векторних чисел на консолі для кожної ітерації.
- Додайте значення 2 до кінця векторних чисел.
- Оголосіть цілу змінну n, щоб зберегти розмір векторних номерів.
- Надрукуйте останнє значення векторних чисел поряд з іншим текстом. Він повинен повернути 2.
- Видаліть останній елемент із векторних номерів. 2 буде видалено.
- Друк тексту на консолі. \ N переміщує курсор на новий рядок, щоб там надрукувати текст.
- Використовуйте змінну ітератора a для перебору елементів векторних чисел.
- На друкуйте значення векторних чисел на консолі для кожної ітерації.
- Вставте значення 7 на початок чисел вектора.
- Надрукуйте перше значення векторних чисел поряд з іншим текстом. Він повинен повернутися 7.
- Видалити всі елементи з векторних номерів.
- Надрукуйте розмір векторного номера поряд з іншим текстом після очищення всього вмісту. Він повинен повернути 0.
- Кінець тіла основної () функції.
Ємність
Використовуйте такі функції, щоб визначити ємність вектора:
- Розмір () - повертає кількість елементів у векторі.
- 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, щоб вказати, що робити, якщо вектор порожній.
- Текст для друку на консолі, якщо вектор порожній.
- Після успішного завершення програма повинна повертати значення.
- Кінець основного () елемента функції.
Короткий зміст:
- Вектор С ++ - це динамічний масив, здатний автоматично змінювати розмір самого себе при додаванні або видаленні елемента з нього.
- Зберігання вектора обробляється контейнером автоматично.
- Елементи вектора зберігаються у суміжній пам’яті, щоб отримати доступ, а потім обходити їх за допомогою ітераторів.
- Вставка нових даних у вектор виконується в його кінці.
- Вставка даних у вектор займає різний час.
- Видалення елемента з вектора займає постійний час.
- Вставка або видалення елемента на початку займає лінійний час.
- Слід використовувати вектори при роботі з елементами даних, які постійно змінюються.
- Крім того, ви можете використовувати вектори, якщо розмір даних не відомий перед початком.