Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Не підтверджено.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.08 Mб
Скачать

Int mainO

{

vector<int> vek; // Створення вектора нульової довжини

// Відображаємо початковий розмір вектора vek. cout«"Розмір =" « vek.size() « endl;

І* Поміщаємо значення у кінець вектора, і розмір вектора за потреби збільшуватиметься. */ for(int і=0; і<10; І++) vek.push_back(i);

// Відображаємо поточний розмір вектора vek. cout«"Новий розмір =" « vek.sizeO « endl;

// Відображаємо вміст вектора, cout«"Поточний вміст:" « endl; for(int і=0; i<vek.sizeO; і++) cout« vek[i]«""; cout« endl;

І* Поміщаємо у кінець вектора нові значення, і розмір вектора за потреби збільшуватиметься. */ for(int і=0; і<10; І++) vek.push_back(i +10);

// Відображаємо поточний розмір вектора vek. cout«"Новий розмір =" « vek.size() « endl;

// Відображаємо новий вміст вектора, cout«"Новий вміст:" « endl; for(int і=0; i<vek.sizeO; і++) cout« vek[i]«""; cout« endl;

// Змінюємо вміст вектора.

for(int і=0; i<vek.sizeO; і++) vek[i] = vek[i] + vek[i];

// Відображаємо вміст вектора, cout«"Вміст подвоєно:" « endl; for(int і=0; i<vek.sizeO; і++) cout« vek[i]«""; cout« endl;

getchO; return 0;

}

Внаслідок виконання ця програма відображає на екрані такі результати:

Розмір = 0 Новий розмір = 10 Поточний вміст:

  1. 1 23456789 Новий розмір = 20 Новий вміст:

  1. 1 234 5 678 9 10 11 12 13141516 17 1819 Вміст подвоєно:

  1. 2 4 6 8 10 12 14 16 18 20 22 24 26 28 ЗО 32 34 36 38

Розглянемо уважно код цієї програми. У функції mainO створюється вектор vek для зберігання int-елементів. Оскільки під час його створення не було передба­чено ніякої ініціалізації, то вектор vek вийшов порожнім, а його місткість дорів­нює нулю. Іншими словами, ми створили вектор нульової довжини. Це підтвер­джується викликом функції-члена класу size(). Потім, використовуючи функцію- члена push_back(), у кінець цього вектора ми поміщаємо 10 елементів, що приму­шує вектор збільшитися в розмірі, щоб розмістити нові елементи. Тепер розмір вектора дорівнює 10 елементам. Зверніть увагу на те, що для відображення вмісту вектора vek використовується стандартний запис індексації елементів масивів. Пі­сля цього у вектор додаються ще 10 елементів, і вектор vek автоматично збіль­шується в розмірі, щоб і їх прийняти на зберігання. Нарешті, використовуючи знову-таки стандартний запис індексації елементів масивів, ми змінюємо значен­ня елементів вектора vek.

Зверніть також увагу на те, що для керування циклами, які використовуються для відображення вмісту вектора vek і його модифікації, як ознака їх завершення застосовується значення розміру вектора, що отримується за допомогою функції vek.size(). Одна з переваг векторів перед масивами полягає у тому, що у нас є змога дізнатися поточний розмір вектора, який у певних ситуаціях є дуже корисним за­собом організації різних баз даних.

  1. Доступ до елементів вектора за допомогою ітератора

Як уже зазначалося вище, масиви і покажчики у мові програмування C++ тіс­но пов'язані між собою. До елементів масиву можна отримати доступ як за допо­могою індексу, так і за допомогою покажчика. У бібліотеці STL аналогічний зв'я­зок існує між векторами й ітераторами. Це означає, що до членів вектора можна звертатися як за допомогою індексу, так і за допомогою ітератора. Цю можливість продемонстровано у наведеному нижче коді програми.

Код програми 12.2. Демонстрація механізму доступу до елементів вектора

#include <vcl> #include <iostream> #include <conio> #include <vector> using namespace std;

за допомогою ітератора

// Для потокового введення-виведення // Для консольного режиму роботи // Для роботи з контейнерним класом "Вектор1 // Використання стандартного простору імен