Четверг, 21.11.2024, 22:38
Приветствую Вас Гость | RSS

Радио сайт

Меню сайта
Форма входа
Статистика

Онлайн всего: 4
Гостей: 4
Пользователей: 0
Ввод/Вывод WM
Обменный пункт

Главная » 2014 » Февраль » 10 » Эффективное использование STL
06:35
Эффективное использование STL

Эффективное использование STL - Библиотека STL (Standard Template Library) произвела настоящий переворот в программировании C++, но ее освоение традиционно считалось весьма сложной задачей. К счастью, ситуация изменилась. В этой книге известный автор и программист Скотт Мейерс раскрывает секреты мастерства, позволяющие добиться максимальной эффективности при работе с этой библиотекой. В книге приводится множество рекомендаций и приемов работы в STL. Эти рекомендации подкреплены подробным анализом и убедительными примерами, поэтому читатель легко узнает, как решить ту или иную задачу и принять верное решение.

Название: Эффективное использование STL
Автор: Скотт Мейерс
Издательство: Питер
Год: 2002
Страниц: 224
Формат: DJVU
Размер: 1,15 МБ
ISBN: 5-94723-382-7
Качество: Отличное
Серия или Выпуск: Библиотека программиста
Язык: Русский

Содержание:

Предисловие
Благодарности
Введение
Определение, использование и расширение STL
Ссылки
STL и Стандарты
Подсчет ссылок
string и wstring
Терминология
Примеры
Вопросы эффективности
Рекомендации
Глава 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. Используйте «фокус с перестановкой» для уменьшения емкости
Совет 18. Избегайте vector<bool>
Глава 3. Ассоциативные контейнеры
Совет 19. Помните о различиях между равенством и эквивалентностью
Совет 20. Определите тип сравнения для ассоциативного контейнера, содержащего указатели
Совет 21. Следите за тем, чтобы функции сравнения возвращали false в случае равенства
Совет 22. Избегайте изменения ключа «на месте» в контейнерах set и multiset
Совет 23. Рассмотрите возможность замены ассоциативных контейнеров сортированными векторами
Совет 24. Тщательно выбирайте между map:: operator [] и map:: insert
Совет 25. Изучите нестандартные хэшированные контейнеры
Глава 4. Итераторы
Совет 26. Старайтесь использовать iterator вместо const_iterator, reversejterator и const_reverse_iterator
Совет 27. Используйте distance и advance для преобразования constjterator в iterator
Совет 28. Научитесь использовать функцию base
Совет 29. Рассмотрите возможность использования istreambufjterator при посимвольном вводе
Глава 5. Алгоритмы
Совет 30. Следите за тем, чтобы приемный интервал имел достаточный размер
Совет 31. Помните о существовании разных средств сортировки
Совет 32. Сопровождайте вызовы remove-подобных алгоритмов вызовом erase
Совет 33. Будьте внимательны при использовании remove-подобных алгоритмов с контейнерами указателей
Совет 34. Помните о том, какие алгоритмы получают сортированные интервалы
Совет 35. Реализуйте простые сравнения строк без учета регистра символов с использованием mismatch или lexicographicaLcompare
Совет 36. Правильно реализуйте copy_if
Совет 37. Используйте accumulate или for_each для обобщения интервальных данных
Глава 6. Функции, функторы и классы функций
Совет 38. Проектируйте классы функторов для передачи по значению
Совет 39. Реализуйте предикаты в виде «чистых» функций
Совет 40. Классы функторов должны быть адаптируемыми
Совет 41. Разберитесь, для чего нужны ptr_fun, mem_fun и mem_fun_ref
Совет 42. Следите за тем, чтобы конструкция Iess<T> означала operator<
Глава 7. Программирование в STL
Совет 43. Используйте алгоритмы вместо циклов
Совет 44. Используйте функции контейнеров вместо одноименных алгоритмов
Совет 45. Различайте алгоритмы count, find, binary_search, lower_bound, upper_bound и equal_range
Совет 46. Передавайте алгоритмам объекты функций вместо функций
Совет 47. Избегайте «нечитаемого» кода
Совет 48. Всегда включайте нужные заголовки
Совет 49. Научитесь читать сообщения компилятора
Совет 50. Помните о web-сайтах, посвященных STL
   Сайт SGI STL
   Сайт STLport
   Сайт Boost
Литература
Книги, написанные мной
Книги, написанные другими авторами
Ошибки и опечатки
Приложение А. Локальные контексты
Сравнение строк без учета регистра символов
Первая попытка
Локальный контекст
Локальные контексты в C++
Фасет collate
Сравнение строк без учета регистра
Приложение Б. Замечания по поводу платформ STL от Microsoft
Шаблоны функций классов в STL
MSVC версий 4-6
Обходное решение для MSVC4-5
Обходное решение для MSVC6
Алфавитный указатель

Скачать Эффективное использование STL
dfiles.ru
turbobit.net
hitfile.net
file-space.org
sinhro.net
borncash.org
startfiles.org
Категория: Компьютер | Просмотров: 1024 | Добавил: Admin | Теги: STL, использование, эффективное | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Календарь
«  Февраль 2014  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
2425262728
Красото, здоровье
Архив записей
Реклама на сайте