lek_10.ppt
- Количество слайдов: 12
Standart Template Library (STL)
Бібліотека шаблонів складається з: 1. Контейнерів. 2. Ітераторів. 3. Алгоритмів. Крім цього застосовуються розподільники пам’яті (allocators), адаптери (adaptors), предикатори (predicates), об’єкти-функції (function objects).
Контейнери 1. Послідовні (sequence container). 2. Асоціативні (associative container).
Алгоритми • Математичні (знаходження сум, добутків, генерація випадкових чисел). • Пошуку (мінімальне значення, пошук послідовності, підрахунок кількості). • Сортування. • Робота з послідовностями.
Ітератори • Вхідні. • Вихідні. • Прямі. • Двонаправлені. • Довільного доступу. Застосовуються 2 спеціальних метода: begin i end.
Стандартна STL algorithm deque functional iterator list map memory numeric queue set stack utility vector
#include <iostream> #include <vector> using namespace std; int main() { vector<int> v; int x; cout << "Enter integers, followed by 0: n"; while (cin >> x, x != 0) v. push_back(x); vector<int>: : iterator i; for (i=v. begin(); i != v. end(); ++i) cout << *i << " "; cout << endl; return 0; }
Послідовні контейнери. Вставка і знищення. Довільний доступ Вставка і знищення у будь-якому місці. Довільного доступу немає.
Операція Функція vector deque list Вставити в кінці Знищити в кінці Вставити на початку Знищити на початку Вставити в будь-якому місці Знищити в будь-якому місці Відсортувати push_back pop_back push_front pop_front insert erase sort (алгоритм) √ √ (√) (√) √ √ √ √ √ -
using namespace std; int main() { vector<int> v; int x; cout <<"Enter integers, followed by 0: n"; while (cin >> x, x != 0) v. push_back(x); sort (v. begin() , v. end()); cout << "After sorting: n"; vector<int>: : iterator i; for (i=v. begin(); i != v. end(); ++i) cout << *i << " "; cout << endl; return 0; }
#include <iostream> #include <algorithm> using namespace std; int main() { int a[10], x, n = 0, *p; cout << "Enter no more 10 integers followed by 0: n"; while (cin >> x, x != 0 && n < 10) a[n++]= x; sort(a, a+n); cout << "After sorting: n"; for (p=a; p != a+n; p++) cout << *p << " "; cout << endl; return 0; }
#include <iostream> #include <vector> #include <stack> using namespace std; int main() { stack <int, vector<int> > S; int x; cout <<"Enter some integers, followed by a letter: n"; while (cin >> x) S. push(x); while (!S. empty()) { x = S. top(); cout << "Size: " << S. size() << "Element at the top: "<< x << endl; S. pop(); } return 0; }
lek_10.ppt