РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
189 of 815 menu

Класс string_view

Класс string_view представляет собой легковесное невладеющее представление последовательности символов. В отличие от string, объект string_view не владеет данными и не управляет их временем жизни - он лишь хранит указатель на первый символ и длину последовательности. Это позволяет избежать лишнего копирования строк при передаче их в функции. Первый параметр конструктора - указатель на строку или другой string_view, а второй - количество символов, которое следует охватить.

Для использования класса необходимо подключить заголовочный файл string_view.

Синтаксис

string_view sv; string_view sv(str); string_view sv(str, count);

Пример

Давайте создадим объект string_view на основе строки и выведем его содержимое и длину:

#include <iostream> #include <string_view> using namespace std; int main() { string_view sv = "abcde"; cout << sv << endl; cout << sv.size() << endl; return 0; }

Результат выполнения кода:

"abcde" 5

Пример

Давайте создадим объект string_view на основе строки, охватив только первые 3 символа:

#include <iostream> #include <string_view> using namespace std; int main() { string str = "abcde"; string_view sv(str.data(), 3); cout << sv << endl; return 0; }

Результат выполнения кода:

"abc"

Пример

Давайте передадим string_view в функцию, чтобы избежать копирования строки:

#include <iostream> #include <string_view> using namespace std; void print(string_view sv) { cout << sv << endl; } int main() { string str = "12345"; print(str); print("abcde"); return 0; }

Результат выполнения кода:

12345 "abcde"

Смотрите также

  • метод size,
    который возвращает длину представления
  • метод substr,
    который вырезает подстроку из представления
  • метод find,
    который ищет подстроку в представлении
  • метод starts_with,
    который проверяет начало представления
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить