Книги автора: Эффективное использование STLEffective STL
/ Книги автора: UX-стратегия. Чего хотят пользователи и как им это дать
Идеальный программист. Как стать профессионалом разработки ПО
Как тестируют в GoogleHow Google Tests Software
Эффективное использование STLEffective STL
/ Книги автора: Эффективное использование STLEffective STL
Книга: Эффективное использование STL
Оглавление книги
- Предисловие
- Благодарности
- Введение
- Определение, использование и расширение STL
- Ссылки
- STL и Стандарты
- Подсчет ссылок
- string и wstring
- Терминология
- Примеры
- Вопросы эффективности
- Рекомендации
- Контейнеры
- Совет 1. Внимательно подходите к выбору контейнера
- Совет 2. Остерегайтесь иллюзий контейнерно-независимого кода
- Совет 3. Реализуйте быстрое и корректное копирование объектов в контейнерах
- Совет 4. Вызывайте empty вместо сравнения size() с нулем
- Совет 5. Используйте интервальные функции вместо одноэлементных
- Совет 6. Остерегайтесь странностей лексического разбора C++
- Совет 7. При использовании контейнеров указателей, для которых вызывался оператор new, не забудьте вызвать delete для указателей перед уничтожением контейнера
- Совет 8. Никогда не создавайте контейнеры, содержащие auto_ptr
- Совет 9. Тщательно выбирайте операцию удаления
- Совет 10. Помните о правилах и ограничениях распределителей памяти
- Совет 11. Учитывайте область применения пользовательских распределителей памяти
- Совет 12. Разумно оценивайте потоковую безопасность контейнеров STL
- Контейнеры vector и string
- Совет 13. Используйте vector и string вместо динамических массивов
- Совет 14. Используйте reserve для предотвращения лишних операций перераспределения памяти
- Совет 15. Помните о различиях в реализации string
- Совет 16. Научитесь передавать данные vector и string функциям унаследованного интерфейса
- Совет 17. Используйте «фокус с перестановкой» для уменьшения емкости
- Совет 18. Избегайте vector
- Ассоциативные контейнеры
- Совет 19. Помните о различиях между равенством и эквивалентностью
- Совет 20. Определите тип сравнения для ассоциативного контейнера, содержащего указатели
- Совет 21. Следите за тем, чтобы функции сравнения возвращали false в случае равенства
- Совет 22. Избегайте изменения ключа «на месте» в контейнерах set и multiset
- Совет 23. Рассмотрите возможность замены ассоциативных контейнеров сортированными векторами
- Совет 24. Тщательно выбирайте между map::operator[] и map::insert
- Совет 25. Изучите нестандартные хэшированные контейнеры
- Итераторы
- Совет 26. Старайтесь использовать iterator вместо const_iterator, reverse_iterator и const_reverse_iterator
- Совет 27. Используйте distance и advance для преобразования const_iterator в iterator
- Совет 28. Научитесь использовать функцию base
- Совет 29. Рассмотрите возможность использования istreambuf_iterator при посимвольном вводе
- Алгоритмы
- Совет 30. Следите за тем, чтобы приемный интервал имел достаточный размер
- Совет 31. Помните о существовании разных средств сортировки
- Совет 32. Сопровождайте вызовы remove-подобных алгоритмов вызовом erase
- Совет 33. Будьте внимательны при использовании remove-подобных алгоритмов с контейнерами указателей
- Совет 34. Помните о том. какие алгоритмы получают сортированные интервалы
- Совет 35. Реализуйте простые сравнения строк без учета регистра символов с использованием mismatch или lexicographical_compare
- Совет 36. Правильно реализуйте copy_if
- Совет 37. Используйте accumulate или for_each для обобщения интервальных данных
- Функции, функторы и классы функций
- Совет 38. Проектируйте классы функторов для передачи по значению
- Совет 39. Реализуйте предикаты в виде «чистых» функций
- Совет 40. Классы функторов должны быть адаптируемыми
- Совет 41. Разберитесь, для чего нужны ptr_fun, mem_fun и mem_fun_ref
- Совет 42. Следите за тем, чтобы конструкция less означала operator
- Программирование в STL
- Совет 43. Используйте алгоритмы вместо циклов
- Совет 44. Используйте функции контейнеров вместо одноименных алгоритмов
- Совет 45. Различайте алгоритмы count, find, binary_search, lower_bound, upper_bound и equal_range
- Совет 46. Передавайте алгоритмам объекты функций вместо функций
- Совет 47. Избегайте «нечитаемого» кода
- Совет 48. Всегда включайте нужные заголовки
- Совет 49. Научитесь читать сообщения компилятора
- Совет 50. Помните о web-сайтах, посвященных STL
- Литература
- Локальные контексты
- Сравнение строк без учета регистра символов
- Первая попытка
- Локальный контекст
- Локальные контексты в C++
- Фасет collate
- Сравнение строк без учета регистра
- Замечания по поводу платформ STL от Microsoft
- Шаблоны функций классов в STL
- MSVC версий 4-6
- Обходное решение для MSVC4-5
- Обходное решение для MSVC6
- Сноски из книги
- Содержание книги
- Популярные страницы
Оглавление статьи/книги
- Предисловие
- Благодарности
- Введение
- Контейнеры
- Контейнеры vector и string
- Ассоциативные контейнеры
- Итераторы
- Алгоритмы
- Функции, функторы и классы функций
- Программирование в STL
- Литература
- Локальные контексты
- Замечания по поводу платформ STL от Microsoft
- Сноски из книги
- Содержание книги
- Популярные страницы
Похожие страницы
- Совет 12. Разумно оценивайте потоковую безопасность контейнеров STL
- Эффективное использование STL
- Программирование в STL
- Замечания по поводу платформ STL от Microsoft
- Восстановление с использованием инструмента gbak
- Типы страниц и их использование
- Использование констант
- Использование переменной окружения ISC_PATH
- Использование сервера Yaffil внутри процесса
- Эффективное взаимодействие процессов архитектуры Classic Server
- Использование CAST() с типами дата
- Использование типов содержимого и столбцов