You are on page 1of 29

Стандартні бібліотеки

Лекція 12_1
Принципи роботи із стандартними
контейнерами
План лекції

1. Призначення стандартної бібліотеки


2. Простори імен
3. Організація стандартної бібліотеки
4. Рядки
5. Контейнери
6. Стандартний контейнер вектор
7. Стандартний контейнер список
Організація стандартної бібліотеки
STL(Standard Template Library)
Стандартна бібліотека STL визначена в просторі імен std і
кожний засіб стандартної бібліотеки стає доступним через
відповідний стандартний заголовковий файл, наприклад:
#include <iostream>
Потім можна або усі імена із std оголосити глобальними:
using namespaсe std;
cout<<"Hello world "<<endl;
або перед кожним викликом відповідної функції визначати
std::, наприклад
int main() { …
std::cout<<"Hello world "<<endl; …
}
Рядки
Стандартна бібліотека містить тип string, який
стає доступним підключенням заголовкового файлу
<string>, за своїми властивостями доповнює
рядкові літерали, що використовувались раніше, і
забезпечує багато корисних операцій: конкатенації
+, лексикографічного порівняння ==, забезпечує
можливість роботи з фрагментами рядків (substr,
replace, insert, find, …)
Наприклад:
string str = "first sentence";
str.replace (0,5, "second");
string s = str.substr(6,4);
Послідовність дій наступна:
✔ Підключити потрібний заголовковий файл
#include <vector>
✔ Оголосити об’єкт – контейнер з елементами потрібного
типу
vector<Product> shop(5);
✔ Оголосити ітератори для даного контейнера
vector<Product>::iterator it1, it2;
❑ Не забувати встановлювати початкове значення для
ітератора кожного разу.
❑ Для скорочення оголошень з використанням шаблонів,
можна користуватися typedef, наприклад:
typedef vector<Product>::iterator Iter;
Iter it1=shop.begin(), it2=shop.end();
Виділення пам’яті під вектор
Вектор побудований так, що до нього зручно додавати нові
елементи в кінець. Це можна зробити функціями resize та
push_back:
resize(n) змінює розмір до n елементів, додаткові
елементи будуть створені з використанням конструктора
умовчання;
push_back(el) додає один елемент в кінець з
використанням конструктора копій для el.
Функція pop_up() видаляє останній елемент.
❑ Якщо потрібний розмір пам’яті більший, ніж розмір
блоку, в якому знаходиться вектор, то система виділяє
новий блок більшого розміру такий, щоб усі елементи
нового вектору вмістились в одному блоці. Після того, як
елементи вектору будуть повністю скопійовані до нового
блоку, старий блок буде звільнений.

You might also like