Подорожуй з gofrie.com

Эндрю Кениг, Барбара Му. Эффективное программирование на С++



Ця книга, в першу чергу, призначена для тих, кому хотілося б швидко навчитися писати повноцінні програми мовою C++. Найчастіше новачки в C++ намагаються освоїти мову чисто механічно, навіть не спробувавши дізнатися, як можна ефективно застосувати його до вирішення повсякденних проблем. Мета даної книги — саме навчити програмуванню на C++, а не просто викласти засоби мови, тому вона корисна не тільки для новачків, але і для тих, хто вже знайомий з C++ і хоче використовувати цю мову в більш натуральному, природному стилі.

Скотт Мэйерс. Эффективное использование STL



Скотт Мейерс — популярний письменник-програміст, автор широковідомої книги «Наиболее эффективное использование C++».

Книга «Эффективное использование STL» являє собою розширений посібниу з використання стандартної бібліотеки шаблонів (Standard Template Library) c докладними поясненнями багатьох практичних прийомів.

Автор висвітлює у своїй книзі такі важливі питання, як:

  • STL і стандарти
  • Термінологія STL
  • Використання різних контейнерів
  • Спеціальні можливості контейнерів Vector і String
  • асоціативні контейнери
  • ітератори
  • алгоритми
  • Функції, функтори і класи функцій
  • Програмування в STL

Матеріал книги містить безліч прикладів з докладними поясненнями і коментарями.

Прочитавши цю книгу, читач зможе засвоїти для себе основні принципи і тонкощі використання бібліотеки стандартних шаблонів STL.

Задача: Бінарні операції над дійсними векторами

Запрограмуйте функцію, здатну виконати довільну бінарну операцію ω над парами, побудованими з елементів дійсних векторів

(x_1, x_2,..., x_n) і (y_1, y_2,..., y_n).

Оператор виводу має розмежовувати елементи вектору пробілом, наприклад 1 1.5 2.465 -6.3

Варіанти розв'язку КР з ООП (2012-2013)

Варіанти розв'язку контрольної роботи з об'єктно-орієнтованого програмування (2012-2013)

Завантажити Автор: Андрій Давиденко

Завантажити Автор: Володимир Дученчук

Варіант розв'язку КР з ООП (2011-2012)

Варіант розв'язку контрольної роботи з об'єктно-орієнтованого програмування (2011-2012)
Завантажити

Автор: Андрій Чайка

Варіант розв'язку КР з ПП (2012-2013)

Варіант розв'язку контрольної роботи з процедурного програмування (2012-2013)
Завантажити

Автор: Андрій Давиденко

Варіант розв'язку іспиту з ПП (2011-2012)

Варіант розв'язку іспиту з процедурного програмування (2011-2012)
Завантажити

Варіант розв'язку КР з ПП (2011-2012)

Варіант розв'язку контрольної роботи з процедурного програмування (2011-2012)
Завантажити

Автор: Андрій Чайка

Запитання: Для новачків

Отже, Ви потрапили на Портал об'єктно-орієнтованого програмування, але не знаєте з чого почати знайомство з ним?
Даний топік (Roadmap, або так звана «мапа» сайту) має спрямувати Вас у вірному напрямку.

Література
На сайті представлена широкий вибір кращої світової літератури з C++, для зручності її було умовно погруповано за рівнем знань читача:


Задачі
На нашому Порталі розміщена велика кількість задач з автоматичним тестуванням, тобто через декілька секунд після завантаження розв'язку ви отримаєте оцінку за Вашу роботу.

Спочатку, Ви можете попрактикуватся на простих алгоритмічних задачах, а потім — з процедурного та об'єктно-орієнтованого програмування.

Створення власних тестів
Якщо Ви вже зрозуміли як влаштоване автоматичне тестування та готові створити свої тестові задачі — Вам варто прочитати детальну інструкцію щодо створення звичайних тестів та UNIT-тестів.

Розв'язки контрольних робіт
На Порталі Ви можете знайти демонстраційні розв'язки контрольних та екземенаційних робіт з ПП та ООП, що дозволять Вам проаналізувати їх та начитись прийомам в програмуванні.

Доповіді наукових семінарів
Представлені доповіді студентів ґрунтуються на глибокому аналізі світової літератури і дають повне уявлення про інтенсивність розвитку і використання ООП в сучасній науці.

Курсові/кваліфікаційні роботи
Для зацікавлених у наукових роботах користувачів предствалені тематичні курсові/кваліфікаційні роботи

Scott Meyers. Presentation Materials: Overview of the New C++ (C++11)



Даний посібник написаний Скотом Мейерсом, вельмишановним автором книжок з C++. Його можна придбати у електронному варіанті за $29.95.

Посібник містить матеріали презентацій з триденного навчального курсу Скотта з C++11, «найсвіжішої» версії C++. Цей технічний семінар інтенсивно впроваджує найважливіші нові можливості в C++11 і пояснює, як отримати максимальну віддачу від них.

Nicolai Josuttis. The C++ Standard Library



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

The C++ Standard Library: A Tutorial and Reference, Second Edition описує цю бібліотеку згідно з новим стандартом мови C++11. Книга являє собою всеосяжну документацію кожного компонента бібліотеки, у тому числі введення в його цілі і дизайн; чітко сформульовані пояснення складних понять; практичні аспекти програмування, необхідні для ефективного використання STL; «пастки» використання STL, точні сингатури і дефініції найбільш важливих класів і функцій; численні приклади програмного коду.

У книзі розглядається стандартна бібліотека шаблонів (STL), контейнери, ітератори, функціональні об'єкти та алгоритми STL.

Typelists

В даній доповіді розказано про метапрограмування засобами C++, а саме про списки типів, в якому типи представлені у вигляді однозв'язного списку, реалізованого засобами рекурсивних шаблонів.

Варто згадати рядки Александреску:
C++ is a language that leads its users sometimes to say, «These are the smartest five lines of code I ever wrote.»


template <class T, class U>
struct Typelist {
    typedef T Head;
    typedef U Tail;
};

Концепція є простою: голова і хвіст списку зберігають типи. Така особливість мови C++, як template parameters дозволяє в свою чергу зберігати в хвості новий typelist.

Презентація
Реалізація
Доповідач: Єгор Даниленко

Small objects allocation

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

Матеріал, що допоможе краще зрозуміти суть доповіді.
Презентація
Реалізація#1 (код, яким автор тестував швидкодію)
Реалізація#2 (рекурсивний стек)
Доповідач: Андрій Чайка

Generalized Functor

In brief, a generalized functor is any processing invocation that C++ allows, encapsulated as a typesafe first-class object. In a more detailed definition, a generalized functor that

  • Encapsulates any processing invocation because it accepts pointers to simple functions, pointers to member functions, functors, and even other generalized functors—together with some or all of their respective arguments.
  • Is typesafe because it never matches the wrong argument types to the wrong functions.
  • Is an object with value semantics because it fully supports copying, assignment, and pass by value. A generalized functor can be copied freely and does not expose virtual member functions.

Presentation
Implementation#1 (using Loki library)
Implementation#2 (Functional tester, briefly analyze the possibility to combine several common functional objects in the context of a conventional tester as at compile time and at runtime.)
Reporter: Danylo Fitel

Singleton

Одинак (англ. Singleton) — шаблон проектування, відноситься до класу твірних шаблонів. Гарантує, що клас матиме тільки один екземпляр, і забезпечує глобальну точку доступу до цього екземпляра.

У даній доповіді розглянено наступні питання:

  • Instance Implementation
  • Unicity
  • Destroying the Singleton
  • Meyers Singleton
  • Dead-reference problem
  • The Phoenix Singleton
  • Singletons with Longevity

Презентація
Доповідач: Діана Сіренко