TGViewer
C++ geek C++ geek @cpp_geek · 3.53K subscribers
Post #425 1K
📌 Оптимизация работы со строками в C++: std::string_view vs std::string

Привет, друзья! Сегодня хочу обсудить одну из самых частых проблем в C++ – работу со строками. А именно, почему std::string_view – это мощный инструмент, который может значительно ускорить ваш код.

❌ Проблема: Копирование строк
Допустим, у вас есть функция, которая принимает строку:


void process(std::string s) {
// работа со строкой
}

Каждый раз, когда вызывается эта функция, создаётся новая копия строки. Если строка длинная, это дорого по времени и памяти.

✅ Решение: Используем std::string_view
С std::string_view можно избежать лишнего копирования:


void process(std::string_view s) {
// работа со строкой без копирования
}

Теперь s – это просто представление строки, а не её копия. Вы можете передавать как std::string, так и char*, что делает API более гибким.

🚀 Преимущества std::string_view:
✔ Не создает копий – работает быстрее.
✔ Поддерживает стандартные операции (substr, find и т. д.).
✔ Работает с std::string, char*, массивами символов.
✔ Идеально подходит для парсинга и работы с текстом.

🔥 Важно помнить:
- std::string_view не управляет памятью, так что будьте осторожны с временными строками.
- Если строка-источник уничтожена, std::string_view станет невалидным.

Пример неверного использования:

std::string_view bad() {
std::string s = "Hello";
return s; // ⚠ UB, строка уничтожена!
}


➡️ @cpp_geek
  • 👍 5
  • ❤ 1
More from @cpp_geek
  1. Sep 24, 2026🎥 Вебинар по C++: Паттерн многопоточного программирования «Producer-Consumer» Когда неско…
  2. Sep 24, 2026Execution policy для параллельных алгоритмов Execution policy в C++ — это новшество, введе…
  3. Sep 17, 2026В чем разница между git fetch и git pull? Разница между этими командами заключается в том,…
  4. Sep 15, 2026std::tie std::tie — это функция, которая создает кортеж ссылок на lvalue из своих аргумент…
  5. Sep 11, 2026move constructor Move-конструктор — это специальный конструктор, который позволяет эффекти…
  6. Sep 9, 2026Move-only объекты и почему std::unique_ptr нельзя копировать Многие удивляются, когда комп…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →