прикладне програмування

3.3. Вектор vector (приклад 3.3)

Для вектора не обов'язково відразу вказувати його розмір, розмір вектора можна змінити в будь-якому місці програми за допомогою функції resize (), а щоб дізнатися розмір вектора можна скористатися функцією size ().

Повний список функцій вектора див. Додаток 5.

Розглянемо більш докладно приклад роботи з вектором. Зверніть увагу, що в цьому прикладі вектор передається в функцію за посиланням, тому що класи і масиви великого обсягу нераціонально копіювати кожен раз при виконанні функції, що відбувається при передачі за значенням. Якщо функція не повинна змінити вміст контейнера, додатково вказується ключове слово const.

При роботі з вектором ми стикаємося з такими поняттями як розмір і ємність. Розмір - кількість елементів, що зберігаються в контейнері, можна дізнатися за допомогою функції size (), а змінити за допомогою resize (). Операції push_back (), insert (), erase () також змінюють розміри вектора. Коли розміри вектора змінюються, то все його елементи можуть бути переміщені в нову область пам'яті, тому зберігати покажчики на елементи вектора не має сенсу і може бути небезпечно. Завжди потрібно працювати через ітератори (див.розділ 3.5).

За допомогою функції empty () можна дізнатися про наявність елементів в контейнері. Якщо контейнер дійсно порожній, то функція повертає true.

При роботі з вектором можна виділити (зарезервувати) деяку область пам'яті для потенційного розширення. Використання функції reserve () забезпечити виділення пам'яті для нових елементів контейнера. При цьому вставка нових елементів або зміна розмірів за допомогою resize () не зажадає перерозподілу зберігається вектора в пам'яті. Визначити "ємність" вектора можна за допомогою функції capaсity ().

Схожі статті