Вход/Регистрация
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
вернуться

Майерс Скотт

Шрифт:

Приемы

Параграф 25: Делайте виртуальными конструкторы и функции, не являющиеся членами класса

Параграф 26: Ограничивайте числа объектов в классе

Параграф 27: В зависимости от ситуации требуйте или запрещайте размещать объекты в куче

Параграф 28: Используйте интеллектуальные указатели

Параграф 29: Используйте подсчет ссылок

Параграф 30: Применяйте прокси-классы

Параграф 31: Создавайте функции, виртуальные по отношению более чем к одному объекту

Разное

Параграф 32: Программируйте, заглядывая в будущее

Параграф 33: Делайте нетерминальные классы абстрактными

Параграф 34: Умейте использовать C++ и C в одной программе

Параграф 35: Ознакомьтесь со стандартом языка

Эффективное использование STL

Глава 1: Контейнеры

Параграф 1: Проявляйте здравый смысл при выборе контейнера

Параграф 2: Остерегайтесь иллюзий относительно контейнерно-независимого кода

Параграф 3: Делайте копирование объектов в контейнерах дешевым и корректным

Параграф 4: Вызывайте функцию empty вместо сравнения size с нулем

Параграф 5: Предпочитайте функции, работающие с диапазонами, их одноэлементным аналогам

Параграф 6: Обращайте внимание на неприятные особенности синтаксического анализа в C++

Параграф 7: При использовании контейнеров, хранящих указатели, выделенные new, не забывайте вызвать delete перед уничтожением контейнера

Параграф 8: Никогда не помещайте объекты типа auto_ptr в контейнеры

Параграф 9: Тщательно выбирайте способ очистки

Параграф 10: Помните о соглашениях и ограничениях распределителей памяти

Параграф 11: О правильном применении специализированных распределителей памяти

Параграф 12: О реалистических ожиданиях относительно потоковой безопасности STL-контейнеров

Глава 2: vector и string

Параграф 13: Предпочитайте vector и string динамически выделенным массивам

Параграф 14: Используйте reserve для избежания ненужных операций перераспределения памяти

Параграф 15: Учитывайте различия в реализациях string

Параграф 16: Как передавать vector и string унаследованным программным интерфейсам

Параграф 17: Используйте «swap-трюк» для сокращения избыточной емкости

Параграф 18: Избегайте применять vector<bool>

Глава 3: Ассоциативные контейнеры

Параграф 19: Разберитесь, чем равенство отличается от эквивалентности

Параграф 20: Специфицируйте способ сравнения для ассоциативных контейнеров, содержащих указатели

Параграф 21: Позаботьтесь о том, чтобы функции сравнения возвращали false для равных значений

Параграф 22: Избегайте модификации ключей «по месту» в контейнерах set и multiset

Параграф 23: Рассмотрите замену ассоциативных контейнеров отсортированными векторами

Параграф 24: Тщательно выбирайте между map::operator[] и map::insert, когда важна эффективность.

Параграф 25: Ознакомьтесь с нестандартными кэшированными контейнерами

Глава 4: Итераторы

Параграф 26: Старайтесь использовать iterator вместо const_iterator, reverse_iterator и const_reverse_iterator

Параграф 27: Используйте distance и advance для преобразования const_iterator в iterator

Параграф 28: Научитесь использовать базовый iterator, соответствующий reverse_iterator

Параграф 29: Подумайте о применении istreambuf_iterator для посимвольного ввода

Глава 5: Алгоритмы

Параграф 30: Обеспечивайте достаточно большие целевые диапазоны при копировании

Параграф 31: Изучите различные варианты сортировки

Параграф 32: После вызова алгоритма remove или ему подобного не забывайте вызвать алгоритм erase, если действительно хотите что-то удалить

Параграф 33: Будьте осторожны при использовании алгоритма remove и ему подобных для контейнеров, содержащих указатели

Параграф 34: Не забывайте, что некоторые алгоритмы ожидают отсортированных диапазонов

Параграф 35: Реализуйте простое независимое от регистра сравнение строк с помощью алгоритмов mismatch или lexicographical_compare

  • Читать дальше
  • 1
  • ...
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: