КАТЕГОРИИ: Архитектура-(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; Просмотров: 485; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |