а бібліотека шаблонів (STL) - набір узгоджених узагальнених алгоритмів, контейнерів, засобів доступу до їхнього вмісту і різних допоміжних функцій в C ++.
Стандартна бібліотека шаблонів до включення в стандарт C ++ lt; # 21 src= doc_zip1.jpg / gt ;. Додавання-видалення елемента в кінець vector займає амортизоване час, та ж операція на початку або середині vector -. Стандартна швидке сортування lt; # 21 src= doc_zip4.jpg / gt ;. Пошук елемента перебором lt; # 21 src= doc_zip5.jpg / gt ;. Існує спеціалізація шаблону vector для типу bool lt; # 21 src= doc_zip6.jpg / gt ;. У будь-якому місці контейнера вставка і видалення виробляються дуже швидко - за.
deque Дек lt; # justify gt ;. Контейнер схожий на vector, але з можливістю швидкої вставки і видалення елементів на обох кінцях за . Реалізований у вигляді двусвязанного списку lt; # justify gt; лінійних масивів lt; # justify gt ;. З іншого боку, на відміну від vector, дек не гарантує розташування всіх своїх елементів в безперервному ділянці пам'яті, що робить неможливим безпечне використання арифметики покажчиків для доступу до елементів контейнера.Ассоціатівние контейнериset Впорядковане безліч унікальних елементів. При вставці/видаленні елементів множини ітератори, що вказують на елементи цієї множини, не стають недійсними. Забезпечує стандартні операції над множинами типу об'єднання, перетину, віднімання. Тип елементів множини повинен реалізовувати оператор порівняння operator lt; або потрібно надати функцію-компаратор. Реалізований на основі самобалансірующіхся дерева двійкового пошуку. multisetТо ж що і set, але дозволяє зберігати повторювані елементи.mapУпорядоченний асоціативний масив пар елементів, що складаються з ключів і відповідних їм значень. Ключі повинні бути унікальні. Порядок проходження елементів визначається ключами. При цьому тип ключа повинен реалізовувати оператор порівняння operator lt ;, або потрібно надати функцію-компаратор.multimap Те ж що і map, але дозволяє зберігати кілька однакових ключів. Контейнери-адаптериstack Стек - контейнер, в якому додавання і видалення елементів здійснюється з одного кінця. queue Черга - контейнер, з одного кінця якого можна додавати елементи, а з іншого - виймати. priority_queue Черга з пріоритетом, організована так, що найбільший елемент завжди стоїть на першому месте.ПсевдоконтейнериbitsetСлужіт для зберігання бітових масок. Схожий на vector lt; bool gt; фіксованого розміру. Розмір фіксується тоді, коли оголошується об'єкт bitset. Ітераторів в bitset немає. Оптимізовано?? про розміром памяті.basic_stringКонтейнер, призначений для зберігання і обробки рядків. Зберігає в пам'яті елементи поспіль єдиним блоком, що дозволяє організувати швидкий доступ до всієї послідовності. Елементи повинні бути POD lt; # justify gt; 'ами. Визначена конкатенація за допомогою + .valarrayШаблон служить для зберігання числових масивів і оптимізований для досягнення підвищеної обчислювальної продуктивності. В деякій мірі схожий на vector, але в ньому відсутня більшість стандартних контейнерів операцій. Визначено операції над двома valarray і над valarray і скаляром (поелементні).
Всі «повноцінні» стандартні контейнери задовольняють певному набору вимог (або угод). У наведеній нижче таблиці годиться, що С - клас контейнера, що містить об'єкти типу Т.
ВираженіеВозвращаемий тіпСложностьПрімечаніеC :: value_type T Час компіляцііC :: reference T Час компіляцііC :: const_referenceВремя компіляцііC :: pointerТіп покажчика, що вказує на C :: referenceВремя компіляцііУказатель на ТC :: iteratorТіп ітератора, що вказує на C :: reference Час компіляції Ітератор будь-якого типу, крім ітератора виводаC :: const_iteratorТіп ітератора, що вказує на C :: const_referenceВремя компіляцііІтератор будь-якого типу, крім ітератора виводаC :: size_typeБеззнаковий цілочисельний тіпВремя компіляцііC obj; Постійна Після: obj.size () == 0 C obj1; obj1=obj2; Лінійна Після: obj1 == obj2 C obj; ( amp; obj) - gt; ~ C (); Результат не іспользуетсяЛінейнаяПосле: a.size () == 0.obj.begin () Постояннаяobj.end () Постояннаяobj1 == obj2 Оборотний в bool Лінейнаяobj1!=obj2 Оборотний в bool Лінейнаяobj.size () size_typeЗавісіт від Тіпанов рекомендується застосовувати для перевірки, порожній чи контейнерobj.empty () Оборотний в boolПостояннаяobj1 lt; obj2Обратімий в boolЛінейнаяobj1 gt; obj2Обратімий в boolЛінейнаяobj1 lt;=obj2Обратімий в boolЛінейнаяobj1 gt;=obj2Обратімий в boolЛінейнаяobj.swap (obj2) void Постійна
6. Опис глобальних змінних підпрограми
class computer {public: char code [20]; char producer; int frequency; char type [15]; int cost; char Vozu [5]; char Vvideo [5]; int Vhard; i...