0Pricing
C++ Academy · Урок

Создание представлений

Создавайте представления строк

«Создание представлений» — бесплатный урок C++ Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C++ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C++ Academy содержит 4 уроков всего.

Из строкового литерала

Самое простое представление создаётся из строкового литерала. Длина вычисляется автоматически.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "automatic length";
    std::cout << sv.size() << "\n";
}

Из std::string

std::string неявно преобразуется в представление, позволяя просматривать его содержимое без копирования.

#include <iostream>
#include <string>
#include <string_view>
int main() {
    std::string s = "owned text";
    std::string_view sv = s;
    std::cout << sv << "\n";
}

Из указателя и длины

Можно создать представление из указателя на символы и явно заданной длины. Это полезно для буферов без завершающего нулевого символа.

#include <iostream>
#include <string_view>
int main() {
    const char buf[] = {'H','e','l','l','o','!'};
    std::string_view sv(buf, 5);
    std::cout << sv << "\n"; // Hello
}

Суффикс литерала sv

Суффикс sv из std::string_view_literals непосредственно создаёт представление и правильно обрабатывает встроенные нулевые символы.

#include <iostream>
#include <string_view>
using namespace std::string_view_literals;
int main() {
    auto sv = "ready"sv;
    std::cout << sv.size() << "\n";
}

Нарезка с помощью substr

substr(pos, count) возвращает новое представление того же буфера — это бесплатный способ обратиться к части текста.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "2026-05-30";
    std::cout << sv.substr(0, 4) << "\n"; // 2026
}

remove_prefix

remove_prefix(n) уменьшает представление спереди, сдвигая указатель начала; копирования не происходит.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "   trimmed";
    sv.remove_prefix(3);
    std::cout << sv << "\n"; // trimmed
}

remove_suffix

remove_suffix(n) уменьшает представление с конца, сокращая его длину.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "data.csv";
    sv.remove_suffix(4);
    std::cout << sv << "\n"; // data
}

Пустые представления

Представление, созданное конструктором по умолчанию, пусто: empty() возвращает true, а size() равен нулю.

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv;
    std::cout << sv.empty() << " " << sv.size() << "\n";
}

Копировать представление дёшево

Присваивание одного представления другому копирует только указатель и длину; оба по-прежнему ссылаются на одни и те же символы.

#include <iostream>
#include <string_view>
int main() {
    std::string_view a = "shared";
    std::string_view b = a;
    b.remove_prefix(3);
    std::cout << a << " " << b << "\n"; // shared red
}

Преобразование обратно в строку

Когда нужно завладеть данными, создайте std::string из представления; именно в этот момент намеренно выполняется копирование.

#include <iostream>
#include <string>
#include <string_view>
int main() {
    std::string_view sv = "copy me";
    std::string owned{sv};
    std::cout << owned << "\n";
}

Выбор способа создания

В обычных случаях используйте литералы и неявное преобразование, для необработанных буферов — форму с указателем и длиной, а substr/remove_* — чтобы повторно нарезать данные без выделения памяти.

Быстрая проверка

Проверьте своё понимание создания представлений.

Повторение

Вы узнали, как создавать представления:

  • Из литералов, строк или указателя и длины.
  • Суффикс sv непосредственно создаёт представления.
  • substr, remove_prefix и remove_suffix бесплатно создают новые срезы.
  • Создавайте std::string, когда нужно владеть данными.

Часто задаваемые вопросы

Урок «Создание представлений» бесплатный?

Да — полный текст урока «Создание представлений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C++ Academy, подпишись на CoddyKit PRO. Курс C++ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Создание представлений»?

Создавайте представления строк Ты практикуешь C++ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C++ Academy?

Предыдущий опыт не требуется. C++ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Создание представлений»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C++ Academy?

Да. Каждый урок C++ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Зачем нужен string_view
  2. Создание представлений
  3. Подводные камни и время жизни
  4. Алгоритмы обработки строк
← Назад к C++ Academy