C++ Academy · leksjon

Opprette views

Bygg views over strenger

Leksjon 2 av 413 trinn

Opprette views er en gratis leksjon i C++ Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C++ Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C++ Academy inneholder totalt 4 leksjoner.

Fra et strengliteral

Den enkleste viewen kommer fra et strengliteral. Lengden beregnes automatisk.

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

Fra en std::string

En std::string konverteres implisitt til en view, slik at De kan lese innholdet uten å kopiere det.

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

Fra peker og lengde

De kan opprette en view fra en tegnpeker og en eksplisitt lengde, noe som er nyttig for buffere som ikke er nullterminerte.

#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-literalets suffiks

Suffikset sv (fra std::string_view_literals) oppretter en view direkte og håndterer innebygde nulltegn korrekt.

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

Utsnitt med substr

substr(pos, count) returnerer en ny view inn i den samme bufferen – en kostnadsfri måte å se på en del av teksten på.

#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) gjør viewen kortere fra begynnelsen ved å flytte startpekeren fremover. Ingen kopiering skjer.

#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) gjør viewen kortere fra slutten ved å redusere lengden.

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

Tomme views

En view som er opprettet med standardkonstruktøren, er tom. empty() returnerer true, og size() er null.

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

Det er billig å kopiere en view

Når én view tilordnes en annen, kopieres bare pekeren og lengden. Begge viser fortsatt til de samme tegnene.

#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
}

Konvertere tilbake til string

Når De trenger å eie dataene, oppretter De en std::string fra viewen. Det er her kopieringen skjer, med hensikt.

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

Velge konstruksjonsmetode

Bruk literaler og implisitt konvertering i vanlige tilfeller, formen med peker og lengde for råbuffere, og substr/remove_* for å lage nye utsnitt uten allokering.

Kunnskapssjekk

Kontroller forståelsen av hvordan views opprettes.

Oppsummering

De har lært hvordan De kan opprette views:

  • Fra literaler, strenger eller peker og lengde.
  • Suffikset sv oppretter views direkte.
  • substr, remove_prefix og remove_suffix lager nye utsnitt uten kostnad.
  • Opprett en std::string når De trenger å eie dataene.
Gratis å komme i gang

Lær deg C++ med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «Opprette views» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien C++ Academy, inkludert «Opprette views», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i C++ Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Opprette views»?

Bygg views over strenger Du øver på C++ Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med C++ Academy?

Ingen tidligere erfaring er nødvendig. C++ Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Opprette views»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne C++ Academy-leksjonen?

Ja. Alle C++ Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Hvorfor string_view
  2. Opprette views
  3. Fallgruver og levetider
  4. Strengalgoritmer
← Tilbake til C++ Academy