Stringvisning er en klasse av sitt eget bibliotek som bør inkluderes i et C ++ -program som følger:
#inkludere
Den har medlemsfunksjoner som er blitt kategorisert under følgende overskrifter: konstruksjon, kapasitet, elementtilgang, iteratorstøtte, modifikatorer, strengoperasjoner og søk. Merkelig nok har String_view modifikatorer, som er i konflikt med definisjonen. Som er avklart nedenfor i denne opplæringen. All strengvisningskode i denne opplæringen er i C ++ Main () -funksjonen.
Artikkelinnhold
Konstruksjon
basic_string_view (const chart* str)
Dette konstruerer et strengbilde, fra en hel streng bokstavelig, av konstant-peker-til-karaktører. Følgende, illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str);
cout <retur 0;
Utgangen er:
en to tre fire fem
Legg merke til at String_View, i stedet for Basic_String_View, har blitt brukt til konstruktørnavnet.
Basic_String_View (const Chart* str, size_type len)
Denne medlemsfunksjonen Windows de første Len -tegnene i strengargumentet. Vinduing kopierer ikke. Ingen String-View Constructor Copies. De refererer bare til. Følgende program viser dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
cout <retur 0;
Utgangen er:
en to tre
Basic_String_View (const Basic_String_view &)
Denne konstruktøren er den samme som den første konstruktøren ovenfor, men argumentet er et String_view -objekt, som allerede hadde sitt syn. Følgende program illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
String_view strvv (strv);
cout <retur 0;
Utgangen er:
en to tre
Basic_String_View & Operator = (const Basic_String_view &)
Denne medlemskonstruktøren er lik det ovennevnte, men String_view er tildelt og ikke bestått som et argument. Følgende program illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
String_view strvv = strv;
cout <retur 0;
Utgangen er:
en to tre
Kapasitet
størrelse_type størrelse () const
Husk at en String_View er et område fra en original streng. Det er ikke en kopi av serien. Den har referanser til karakterelementene i området i den opprinnelige strengen. Størrelsen på denne String_view (vindusvisningen) kan fremdeles bestemmes fordi String_view er et objekt som er instantiert fra String_view -klassen. Størrelsen returneres av størrelsen () medlemsfunksjonen. Følgende program demonstrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
int sz = strv.størrelse();
cout <retur 0;
Utgangen er:
1. 3
bool tom () const
Et String_View -objekt kan opprettes tomt, som vist i følgende program. Når det er tomt, vil den tomme () medlemsfunksjonen komme tilbake; Ellers vil det komme tilbake usant. Programmet er:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
String_view strv;
bool bl = strv.tømme();
cout <retur 0;
Utgangen er 1, for sann. Merk at String_view -objektet ble opprettet uten parenteser og uten noe argument.
Elementtilgang
const_reference operatør [] (size_type pos) const
Den firkantede brakettoperatøren kan brukes til å lese en verdi (karakter) i String_view. Følgende program bruker en for-loop for å illustrere dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
for (int i = 0; icout < cout < retur 0;
Utgangen er:
en to tre
Merk: Et tegn i et String_View -objekt kan ikke endres. Enhver mulig endring bør gjøres i den opprinnelige strengen.
Iteratorstøtte
const_iterator start () const
Denne medlemsfunksjonen returnerer en konstant iterator som peker på det første karakterelementet i String_view -objektet. Her betyr const_iterator at karakteren ikke kan endres. Iteratoren kan imidlertid økes for å peke på neste karakterelement; eller legg til et heltall som ligner et heltall til en indeks for å peke på et annet karakterelement foran. Følgende program illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
String_view :: const_iterator it = strv.begynne();
det ++;
det = det + 4;
cout <<*it <retur 0;
Utgangen er 'w'. Merk på at iteratoren er konstruert.
const_iterator end () const
Denne medlemsfunksjonen returnerer en konstant iterator som peker rett etter det siste tegnelementet i String_view -objektet. Iteratoren kan reduseres for å peke på det siste karakterelementet eller trekkes fra et heltall, på samme måte som å trekke et heltall fra en indeks, for å peke på et annet karakterelement i før. Her betyr const_iterator at karakteren ikke kan endres. Følgende program illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
String_view :: const_iterator it = strv.slutt();
den--;
det = det - 4;
cout <<*it <retur 0;
Utgangen er 'T'.
Modifiserere
void remove_prefix (size_type n)
Dette fjerner en første delstreng fra String_view, men den fjerner ikke noe tegn fra den originale strengen. Følgende program illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
cout <strv.remove_prefix (4);
cout <cout < retur 0;
Utgangen er:
en to tre
to tre
en to tre fire fem
void remove_suffix (size_type n)
Dette fjerner en siste delstreng fra String_view, men den fjerner ikke noe tegn fra den originale strengen. Følgende program illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
cout <strv.Fjern_Suffix (6);
cout <cout < retur 0;
Utgangen er:
en to tre
en to
en to tre fire fem
Strengoperasjoner
Size_Type Copy (Chart* s, size_type n, size_type pos = 0) const
Denne funksjonen kopierer en rekke tegn fra String_view-objektet (ikke den opprinnelige strengen) for å erstatte den første understrengen av en annen streng. Følgende program illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char strb [] = "aaa bbb ccc ddd eee";
const char* str = "en to tre fire fem";
String_view strv (str, 13);
cout <strv.kopi (strb, 3, 4);
cout <cout < retur 0;
Utgangen er:
en to tre
To BBB CCC DDD EEE
en to tre fire fem
Det er to uavhengige strenger her. String_view er ikke en uavhengig streng. Det er et områdevindu for en av de uavhengige strengene. Legg merke til at medlemsfunksjonens første parameter, "Chart* s" betyr en matrise-av-chars og ikke en const-char* .
int sammenlign (basic_string_view s) const
Antall tegn på to String_Views sammenlignes her. Hvis den, ved å bruke medlemsfunksjonen sammenligne (), er høyere, returneres et positivt tall. Hvis tallene er like, returneres null. Hvis String_View -objektet som bruker medlemsfunksjonen har et lavere antall, returneres et negativt tall. Følgende program illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* stra = "en to tre fire fem";
String_view Strva (Stra, 13);
cout <const char* strb = "aaa bbb ccc ddd eee";
String_view StrvB (Strb, 11);
cout <int ret = strvb.Sammenlign (STRVA);
cout <retur 0;
Utgangen er:
en to tre
AAA BBB CCC
-14, på forfatterens datamaskin.
Søker
størrelse_type funn (const chart* s, size_type pos = 0) const
Denne medlemsfunksjonen ser etter forekomsten av den første understrengen, i den aktuelle String_view. Den returnerer indeksen for den første karakteren av den understrengen som er funnet. Hvis ikke funnet, returnerer den -1. Det andre argumentet forteller hvor søket starter (standardindeks er 0). Følgende program illustrerer dette:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
const char* str = "en to tre fire fem";
String_view strv (str, 13);
cout <const char* cs = "to";
int ret = strv.finn (cs, 0);
cout <retur 0;
Utgangen er:
en to tre
4
Konklusjon
En String_View er en vindusvisning av en rekke en original streng. Det er ikke en kopi av karakterene. Karakterene blir referert til. Det er en strengvisningsklasse som String_View -objekter blir instantiert. String-view har mange medlemsfunksjoner. De grunnleggende medlemsfunksjonene fra de forskjellige kategoriene er forklart ovenfor.