Создание представлений
Создавайте представления строк
«Создание представлений» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Зачем нужен string_view
- Создание представлений
- Подводные камни и время жизни
- Алгоритмы обработки строк