C++ Academy · Lektion

Oprettelse af views

Opret views over strenge

Lektion 2 af 413 trin

Oprettelse af views er en gratis C++ Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i C++ Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C++ Academy-kurset indeholder 4 lektioner i alt.

Fra en strengliteral

Den enkleste visning kommer fra en strengliteral. Længden 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 implicit til en visning, så du kan se dens indhold uden at 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 pointer og længde

Du kan opbygge en visning ud fra en tegnpointer og en eksplicit længde, hvilket er nyttigt for buffere, der ikke er nulterminerede.

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

Literal-suffikset sv

Suffikset sv (fra std::string_view_literals) opretter en visning direkte og håndterer indlejrede nul-tegn korrekt.

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

Udsnit med substr

substr(pos, count) returnerer en ny visning i den samme buffer – en omkostningsfri måde at se på en del af teksten.

#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) gør visningen mindre fra begyndelsen ved at flytte startpointeren frem, uden at der kopieres.

#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) gør visningen mindre fra slutningen ved at reducere dens længde.

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

Tomme visninger

En standardkonstrueret visning er tom; empty() returnerer true, og size() er nul.

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

Det er billigt at kopiere en visning

Når du tildeler én visning til en anden, kopieres kun pointeren og længden, og begge henviser stadig til de samme tegn.

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

Konvertering tilbage til string

Når du skal eje dataene, skal du konstruere en std::string ud fra visningen. Det er her, kopieringen sker, med vilje.

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

Valg af konstruktionsmetode

Brug literaler og implicit konvertering i almindelige tilfælde, formen med pointer og længde til rå buffere, og substr/remove_* til at lave nye udsnit uden allokering.

Hurtigt tjek

Tjek din forståelse af, hvordan visninger oprettes.

Opsummering

Du har lært, hvordan du opretter visninger:

  • Fra literaler, strenge eller pointer og længde.
  • Suffikset sv opretter visninger direkte.
  • substr, remove_prefix og remove_suffix laver nye udsnit uden omkostninger.
  • Konstruér en std::string, når du skal eje dataene.
Gratis at komme i gang

Lær C++ med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
51
Lektioner
203

Ofte stillede spørgsmål

Er lektionen “Oprettelse af views” gratis?

Ja — alle 3 lektioner i læringssporet C++ Academy, inklusive “Oprettelse af views”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. C++ Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Oprettelse af views”?

Opret views over strenge Du øver dig i C++ Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C++ Academy?

Der kræves ingen tidligere erfaring. C++ Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Oprettelse af views”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C++ Academy-lektion?

Ja. Alle C++ Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Hvorfor string_view
  2. Oprettelse af views
  3. Faldgruber og levetider
  4. String-algoritmer
← Tilbage til C++ Academy