Tworzenie widoków
Buduj widoki na stringach
Tworzenie widoków to bezpłatna lekcja C++ Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C++ Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C++ Academy zawiera 4 lekcji w sumie.
Z literału tekstowego
Najprostszy widok można utworzyć z literału tekstowego. Jego długość jest obliczana automatycznie.
#include <iostream>
#include <string_view>
int main() {
std::string_view sv = "automatic length";
std::cout << sv.size() << "\n";
}Z obiektu std::string
std::string jest niejawnie konwertowany na widok, co umożliwia obserwowanie jego zawartości bez kopiowania.
#include <iostream>
#include <string>
#include <string_view>
int main() {
std::string s = "owned text";
std::string_view sv = s;
std::cout << sv << "\n";
}Ze wskaźnika i długości
Widok można utworzyć ze wskaźnika do znaków i jawnie podanej długości. Jest to przydatne w przypadku buforów, które nie kończą się znakiem null.
#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
}Przyrostek literału sv
Przyrostek sv (z std::string_view_literals) tworzy widok bezpośrednio i poprawnie obsługuje osadzone znaki null.
#include <iostream>
#include <string_view>
using namespace std::string_view_literals;
int main() {
auto sv = "ready"sv;
std::cout << sv.size() << "\n";
}Wycinanie za pomocą substr
substr(pos, count) zwraca nowy widok do tego samego bufora — to bezkosztowy sposób na dostęp do części tekstu.
#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) skraca widok od początku, przesuwając wskaźnik początkowy, bez kopiowania.
#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) skraca widok od końca, zmniejszając jego długość.
#include <iostream>
#include <string_view>
int main() {
std::string_view sv = "data.csv";
sv.remove_suffix(4);
std::cout << sv << "\n"; // data
}Puste widoki
Widok utworzony konstruktorem domyślnym jest pusty; empty() zwraca true, a size() ma wartość zero.
#include <iostream>
#include <string_view>
int main() {
std::string_view sv;
std::cout << sv.empty() << " " << sv.size() << "\n";
}Kopiowanie widoku jest tanie
Przypisanie jednego widoku do drugiego kopiuje tylko wskaźnik i długość, a oba widoki nadal wskazują te same znaki.
#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
}Konwersja z powrotem do string
Gdy potrzebne jest posiadanie danych na własność, należy utworzyć std::string na podstawie widoku. W tym momencie celowo wykonywana jest kopia.
#include <iostream>
#include <string>
#include <string_view>
int main() {
std::string_view sv = "copy me";
std::string owned{sv};
std::cout << owned << "\n";
}Wybór sposobu tworzenia
W typowych przypadkach należy używać literałów i konwersji niejawnej, formy wskaźnik+długość dla surowych buforów oraz substr/remove_* do ponownego wycinania bez alokacji.
Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat tworzenia widoków.
Podsumowanie
Poznałeś(-aś), jak tworzyć widoki:
- Z literałów, obiektów string albo wskaźnika i długości.
- Przyrostek
svtworzy widoki bezpośrednio. substr,remove_prefixiremove_suffixpozwalają bezkosztowo zmieniać zakres widoku.- Gdy potrzebne jest posiadanie danych na własność, należy utworzyć
std::string.
Często zadawane pytania
Czy lekcja „Tworzenie widoków” jest bezpłatna?
Tak — pełny tekst „Tworzenie widoków” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C++ Academy, przejdź na CoddyKit PRO. Kurs C++ Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Tworzenie widoków”?
Buduj widoki na stringach Ćwiczysz C++ Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C++ Academy?
Nie wymagamy żadnego doświadczenia. C++ Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Tworzenie widoków”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C++ Academy?
Tak. Każda lekcja C++ Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dlaczego string_view
- Tworzenie widoków
- Pułapki i cykle życia
- Algorytmy dla stringów