0Pricing
C++ Academy · Lekcja

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 sv tworzy widoki bezpośrednio.
  • substr, remove_prefix i remove_suffix pozwalają 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

  1. Dlaczego string_view
  2. Tworzenie widoków
  3. Pułapki i cykle życia
  4. Algorytmy dla stringów
← Powrót do C++ Academy