Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Контейнери

Зміст лекції

План лекції

Лекція № 7

Література

56. Катаев М.Ю. Объектно-ориентированное программирование: Учебное пособие. - Томск: Томский межвузовский центр дистанционного образования, 2000. - 145 с.

57. Кент Рейсдорф и Кен Хендерсон BORLAND C++BUILDER. ОСВОЙ САМОСТОЯТЕЛЬНО

58. Лафоре Р. Обьектно–ориентированное программирование в С++. 4-е изд.: – СПб: Питер, 2004 – 902 с.

59. Львов М.С., Співаковський О.В. Вступ до об’єктно-орієнтоване програмування. Навчальний посібник. - Херсон: ХГПУ, 2000.- 238 с.:іл.

60. М.С. Львов. О.В. СпіваковськийВступ до об’єктно-орієнтоване програмування. Навчальний посібник. - Херсон: ХГПУ, 2000.- 238 с.:іл.

61. Шилдт Герберт. Искусство программирования на С++. Санкт-Питербург, 2005.-496 с., ил.

62. Шилдт, Герберт. C++: руководство для начинающих, 2-е издание.: Пер. с англ. — М.: Издатель- ский дом "Вильяме", 2005. — 672 с.: ил. — Парал. тит. англ.

63. Эккель Брюс. Философия С++. Введение в стандартный С++ (2-е издание). - СПб: Питер, 2004 – 573 с.

64. Эккель Брюс. Философия С++. Практическое программирование (2-е издание). - СПб: Питер, 2004 – 610 с., ил.

65. Юркова Т. А., Ушаков Д. М., Паскаль для школьников. — СПб.: Питер, 2010. — 256 с.: ил.

66. Visual Studio 2010 и введение в.NET 4.0 и для профессионалов. Макки, Алекс: Пер. с англ. — М.: ООО И. Д. Вильямс". 2010. — 416 с.: ил. — Парал, тит. англ.

 

Тема 7. Універсальна мова моделювання (Unified Modelling Language або UML)

1.Сфера застосування UML.

2.Основні поняття та принципи.

3.Зв'язки між класами (асоціація, агрегація, композиція, узагальнення).

4.UML: діаграми класів. UML: діаграми взаємодії. UML: діаграми послідовності.

Стандартна бібліотека шаблонів (Standard Template Library - STL) мови С++ об' єднує в собі контейнерні типи даних, алгоритми для їх обробки даних, ітератори для звернення до елементів або послідовностей в контейнера. STL також містить набір шаблонів для забезпечення стандартного введення-виводу.

Слово "стандартна" означає, що ця бібліотека є частиною стандарту мови С++ і повинна розглядатися, як деручи альтернатива при виборі методів і засобів роботи з даними і потоками введення-виводу.

Слово "шаблонів" означає, що уся бібліотека побудована на шаблонах класів і функцій, що забезпечує можливість уніфікованої роботи з різними типами даних. Використання шаблонів у бібліотеці дозволяє не лише однаково обробляти вбудовані типи С++, але і працювати з призначеними для користувача типами даних, які не булі відомі у момент розробки бібліотеки.

STL має ряд переваг:

Код бібліотеки написаний професійними програмістами, перевірений і відлагоджений. Вам не доведеться шукати помилки в реалізації контейнерів або алгоритмів STL. Швидше, помилки будуть пов' язані з невірним розумінням концепцій STL, але це питання досвіду використання.

Код бібліотеки написаний дуже ефективно з точки зору використання оперативної пам' яті і швидкодії для типових варіантів застосування.

Бібліотека пропонує уніфікований інтерфейс, одноманітний для усіх контейнерів і алгоритмів, що після отримання навички використання бібліотеки дозволяє значно підвищити читаність програми.

Використання бібліотеки дозволяє приступити відразу до рішення проектних завдань, не замислюючись про реалізацію низькорівневих контейнерів і алгоритмів. У разі роботи проектної групи це дозволяє уникнути дублювання коду у різних розробників.

Бібліотека добре документована і описана в книгах. У разі розробки власних контейнерів і алгоритмів документація буде, швидше за усе, значно бідніше, що підвищить вартість підготовки нового фахівця.

Код, написань з використанням STL легко переноситися на інші компілятори, операційні системи і платформи.

До недоліків STL можна віднести:

· Непристосованість до роботи із структурними типами даних.

· Низька ефективність (швидкодія, пам'ять) при рішенні приватних завдань, де можливі цільові оптимізації коду.

· Неадекватний інтерфейс шаблону для роботи з рядками

· Складність управління пулом пам' яті при роботі з контейнерами STL.

Вказані недоліки в основному торкаються рівня професійних програмістів, які здатні самостійно проаналізувати ефективність використання тієї або іншої бібліотеки. Для початкуючого програміста ця бібліотека є засобом, що дозволяє значно підвищити продуктивність праці і швидко перейти від рішення низькорівневих завдань до проблем предметної області. Тому бібліотека STL в обов'язковому порядку має бути вивчена розробником і повинна всюди використовуватися до того годині, поки він не зможе самостійно переконливо аргументувати вибір іншої бібліотеки або розробку власних контейнерів і алгоритмів.

Бібліотека STL представляє ряд контейнерів для зберігання даних, які умовно можна розділити на контейнери з довільним доступом, послідовні контейнери і асоціативні контейнери.

Контейнерами з довільним доступом є vector і deque. Обидва контейнери забезпечують довільний доступ до елементів (як до елементів звичайних масивів C++). Основна відмінність vector і deque полягає в тому, що vector забезпечує додавання нових елементів у кінці, а deque - у кінці і на початку контейнера.

Контейнери з довільним доступом дозволяють звертатися до елементу за допомогою оператора []. Додавання елементів в vector робиться за допомогою методу push_back, що додає новий елемент у вектор. Використання елементу до його додавання (чи резервування) неприпустимо.

Контейнером з послідовним доступом є list (пов'язаний список).

Також є контейнери, що визначають пріоритетну чергу (priority_queue) і стек (stack).

Асоціативні контейнери представлені словником (map, multimap) і набором (set, multiset), а також їх аналогами, реалізованим з використанням хеш-таблиц.

Асоціативні контейнери дозволяють зберігати дані у впорядкованому виді і забезпечують швидкий пошук потрібних значень по ключу. Приміром, set дозволяє зберігати набори унікальних (за значенням) об' єктів. А multiset дозволяє зберігати об' єкти, що повторюються. Контейнер map дозволяє зберігати словник пар ключ-значення і здійснювати швидкий пошук потрібного елементу по ключу.

 

<== предыдущая лекция | следующая лекция ==>
Закон Деметри | Агрегація
Поделиться с друзьями:


Дата добавления: 2013-12-14; Просмотров: 465; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.