Шрифт:
Более того, решение, основанное на классе
Исключения и управление ресурсами важны, но данный совет посвящен другой теме — потоковой безопасности в STL. Как говорилось выше, вы можете надеятьсяна то, что реализация библиотеки обеспечивает параллельное чтение из одного контейнера и одновременную запись в разные контейнеры. Не надейтесь, что библиотека избавит вас от ручной синхронизации и не рассчитывайте на поддержку многопоточности.
Контейнеры vector и string
Все контейнеры STL по-своему полезны, однако большинство программистов C++ работает с
В этой главе контейнеры
Совет 13. Используйте vector и string вместо динамических массивов
Принимая решение о динамическом выделении памяти оператором
1. Выделенная память в дальнейшем должна быть освобождена оператором
2. Освобождение должно выполняться соответствующей формой оператора
3. Оператор
Итак, динамическое выделение памяти сопряжено с немалой ответственностью, и я не понимаю, зачем брать на себя лишние обязательства. При использовании
Каждый раз, когда вы готовы прибегнуть к динамическому выделению памяти под массив (то есть собираетесь включить в программу строку вида «
Кроме того,
Если вас беспокоит судьба унаследованного кода, работающего с массивами, не волнуйтесь и смело используйте
Честно говоря, мне приходит в голову лишь одна возможная проблема при замене динамических массивов контейнерами
Впрочем, оптимизация нередко оборачивается «пессимизацией». При использовании