На этом шаге мы остановимся на эффективности строковых классов.
Стандарт не указывает, как должен быть реализован строковый класс, - он лишь определяет интерфейс строкового класса. В зависимости от выбранного концептуального подхода и приоритетов реализации могут существенно различаться по скорости работы и расходованию памяти.
Если вы добиваетесь оптимизации по скорости, используйте строковый класс, основанный на концепции подсчета ссылок. Подсчет ссылок ускоряет копирование и присваивание, поскольку реализация копирует и присваивает не содержимое строк, а только ссылки (на 190 шаге описан класс умного указателя, реализующий подсчет ссылок для произвольного типа). Хотя при подсчете ссылок передача по константной ссылке может вам не потребоваться, для обеспечения должной гибкости и переносимости программ такую передачу нужно обеспечить.
На следующем шаге мы сравним строки и векторы.