Курсова робота
Мова програмування С ++
ВСТУП
С ++ - мова програмування, який підтримує такі парадигми програмування lt; # justify gt; 1. Загальна характеристика роботи
1.1 Актуальність теми
Мова програмування С ++ є одним із найуживаніших в даний час. Досить часто виникає завдання ведення бази даних при мінімальних витратах пам'яті. У цьому випадку застосовується об'єктно-орієнтований підхід з використанням стандартної бібліотеки шаблонів (STL). У своїй роботі я використовувала клас контейнера - вектор.
1.2 Мета роботи
Метою даної роботи є вивчення стандартної бібліотеки шаблонів (STL) мови С ++ і створення власної бази даних.
1.3 Завдання роботи
Для досягнення мети слід вирішити поставлені завдання:
) створення власної бази даних;
) реалізувати можливості додавання нових елементів;
) реалізувати можливість заміни одного з елементів;
) реалізувати можливість пошуку за заданими критеріями;
) реалізувати можливість видалення одного з елементовж
) реалізувати можливість виведення всіх даних;
2 Загальна характеристика
. 1 Теоретичне введення
. 1.1 Введення в STL
У STL міститься кілька основних сутностей. Три найбільш важливі з них - це контейнери, алгоритми і ітератори. Контейнер - це спосіб організації зберігання даних (стек, зв'язний список, черга). Ще один контейнер - це масив, але він настільки тривіальний і популярний, що вбудований в C ++ і більшість інших мов програмування. Контейнери бувають найрізноманітніші, і в STL включені найбільш корисні з них. Контейнери STL підключаються до програми за допомогою шаблонних класів, а значить, можна легко змінити тип збережених у них даних. Під алгоритмами в STL подразумевают процедури, застосовувані до контейнерів для обробки їх даних різними способами. Наприклад, є алгоритми сортування, копіювання, пошуку та об'єднання. Алгоритми представлені в STL у вигляді шаблонних функцій. Однак вони не є методами класів-контейнерів. Навпаки, це абсолютно незалежні функції. Насправді, однією з найбільш привабливих рис STL є універсальність її алгоритмів. Їх можна використовувати не тільки в об'єктах класів-контейнерів, але й у звичайних масивах і навіть у власних контейнерах. (Контейнери, тим не менш, містять методи для виконання деяких специфічних завдань.) Ітератори - це узагальнення концепції покажчиків: вони посилаються на елементи контейнера. Їх можна інкрементіровать, як звичайні покажчики, і вони будуть посилатися послідовно на всі елементи контейнера. Ітератори - ключова частина всього STL, оскільки вони пов'язують алгоритми з контейнерами. Їх можна уявити собі у вигляді кабелю, що зв'язує колонки вашої стереосистеми або комп'ютер з його периферією.
2.1.2 Контейнери
Контейнер - це об'єкт, який може містити в собі інші об'єкти. Існує кілька різних типів контейнерів (см.ріс.1). Наприклад, клас vector визначає динамічний масив, deque створює двонаправлену чергу, а list являє зв'язний список. Ці контейнери називаються послідовними контейнерами (sequence containers), тому що в термінології STL послідовність -це лінійний список. STL також визначає асоціативні контейнери (associative containers), які забезпечують ефективне витяг значень на основі ключів.
Таким чином, асоціативні контейнери зберігають пари ключ/значення. Прикладом може служити map. Цей контейнер зберігає пари ключ/значення, в яких кожен ключ є унікальним. Це полегшує витяг значення по заданому ключу.
Рис.1-Різновид контейнерів
Послідовні контейнери.
У послідовних контейнерах дані зберігаються подібно до того, як будинки стоять на вулиці - в ряд. Кожен елемент зв'язується з іншими за допомогою номера своєї позиції в ряду. Всі елементи, крім кінцевих, мають по одному сусідові з кожного боку. Прикладом послідовного контейнера є звичайний масив. Проблема з масивами полягає в тому, що їх розміри потрібно вказувати при компіляції, тобто у вихідному коді. На жаль, під час написання програми зазвичай не буває відомо, скільки елементів буде потрібно записати в масив. Тому, як правило, розраховують на гірший варіант, і розмір масиву вказують «із запасом». У підсумку при роботі програми з'ясовується, що або в масиві залишається дуже багато в...