Вектори – це, можна сказати, розумні масиви. Вони займаються автоматичним розміщенням себе в пам’яті, розширенням і звуєенням свого розміру в міру вставки чи видалення даних. Вектори можна використовувати в якійсь мірі як масиви, звертаючись до елементів за допомогою звичного оператора []. Випадковий доступ у векторах виконується швидко.
Також доволі швидко здійснюється додавання (чи проштовхування) нових даних в кінець ветора. Коли це відбувається, розмір вектора автоматично збільшується для того, щоб було куди помістити нове значення
Методи push_back(), size() i operator[]
У програмі 15.11 приведено приклад найзагальніших векторних операцій
#include<iostream>
#include<vector>
#include<conio>
using namespace std;
int main()
{vector<int> v; //створити вектор типу int
v.push_back(10);
v.push_back(11);
v.push_back(12);
v.push_back(13);
v[0]=20;
v[3]=23;
for(int j=0;j<v.size();j++)
cout<<v[j]<<' ';
cout<<endl;
getch();
return 0;
}
Програма 15.11
Для створення вектора v використовується штатний конструктор вектора без параметру. Як з будь-якими контейнерами STL, для задання типу змінних, які будуть зберігатися у векторі, використовується шаблонний формат, в даному випадку це тип int. Ми не визначаємо розмір контейнера, тому спочатку він рівний 0.
Метод push_back() вставляє значення свого аргументу в кінець вектора (кінець розміщується там, де знаходиться найбільший індекс). Початок вектора (елемент з індексом 0), на відміну від списків та черг, не може використовуватися для вставки нових елементів.
Як тільки у векторі з’являються які-небудь дані, до них відразу може бути одержаний доступ за допомогою перезавантаженого оператора []. Як бачимо, ми дістаємо доступ до довільного елементу вектора і можемо напряму працювати з ним.
v[0]=20;
v[3]=23;
Результат роботи програми виглядає так:

Метод size() повертає поточне число елементів, що містяться в контейнері. Для даної програми це 4. Це значення використовується в циклі for для виводу значень вектора на екран.
Ще один метод, max_size(), повертає максимальний розмір, до якого може бути розширений контейнер. Це число залежить від типу збережуваних в ньому даних.