logo

Array af strenge i C++ – 5 forskellige måder at skabe på

I C++ er en streng normalt kun en matrix af (eller en reference/peger på) tegn, der ender med NULL-tegnet ' ’. En streng er en 1-dimensionel række af tegn, og en række af strenge er en 2-dimensionel række af tegnhvor hver række indeholder en eller anden streng.

Nedenfor er de 5 forskellige måder at oprette et array af strenge i C++:



  1. Ved brug af Pointer
  2. Ved brug af 2-D Array
  3. Bruger Strenge klasse
  4. Bruger Vektor klasse
  5. Bruger Array klasse

1. Brug af pointere

Pointers er den symbolske repræsentation af en adresse. Med enkle ord er en pointer noget, der gemmer adressen på en variabel i den. I denne metode skabes en række af strengliteraler af en række pointere, hvorihver pegepind peger på en bestemt streng.

Eksempel:

C++








// C++ program to demonstrate> // array of strings using> // pointers character array> #include> // Driver code> int> main()> {> >// Initialize array of pointer> >const> char>* colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> >return> 0;> }>

java regex til

>

>

Produktion

Blue Red Orange Yellow>

Forklaring:

  • Antallet af strenge er fast, men behøver ikke at være det. De 4 kan udelades, og compileren vil beregne den korrekte størrelse.
  • Disse strenge er konstanter, og deres indhold kan ikke ændres. Fordi strengliteraler (bogstaveligt talt, de citerede strenge) findes i et skrivebeskyttet område af hukommelsen, skal vi angive const her for at forhindre uønskede adgange, der kan crashe programmet.

2. Brug af et 2D-array

Et 2-D-array er den enkleste form for et multidimensionelt array, hvor det gemmer dataene i tabelform. Denne metode er nyttig, når længden af ​​alle strenge er kendt, og der ønskes et bestemt hukommelsesfodaftryk. Plads til strenge vil blive tildelt i en enkelt blok

Eksempel:

C++


føljeton i postgres



// C++ program to demonstrate> // array of strings using> // 2D character array> #include> // Driver code> int> main()> {> >// Initialize 2D array> >char> colour[4][10]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> >return> 0;> }>

>

>

Produktion

Blue Red Orange Yellow>

Forklaring:

  • Både antallet af strenge og størrelsen på strengene er faste. De 4 kan igen udelades, og den passende størrelse vil blive beregnet af compileren. Den anden dimension skal dog gives (i dette tilfælde 10), så compileren kan vælge et passende hukommelseslayout.
  • Hver streng kan ændres, men vil optage den fulde plads, som den anden dimension giver. Hver vil blive lagt ud ved siden af ​​hinanden i hukommelsen og kan ikke ændre størrelse.
  • Nogle gange er kontrol over hukommelsesfodaftrykket ønskeligt, og dette vil allokere et hukommelsesområde med et fast, regulært layout.

3. Brug af String-klassen

STL-strengen eller streng klasse kan bruges til at skabe en række foranderlige strenge. I denne metode er størrelsen af ​​strengen ikke fast, og strengene kan ændres, hvilket på en eller anden måde gør den dynamisk i naturen alligevel std::streng kan bruges til at oprette en streng-array ved hjælp af indbyggede funktioner.

Eksempel:

C++




// C++ program to demonstrate> // array of strings using> // string class> #include> #include> // Driver code> int> main()> {> >// Initialize String Array> >std::string colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Print Strings> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> }>

>

>

Produktion

Blue Red Orange Yellow>

Forklaring:

java scan.nextstring

Arrayet er af fast størrelse, men behøver ikke at være det. Igen kan de 4 her udelades, og compileren vil bestemme den passende størrelse af arrayet. Strengene kan også ændres, så de kan ændres.

4. Brug af vektorklassen

EN vektor er et dynamisk array, der fordobler sin størrelse, hver gang der tilføjes et nyt tegn, der overskrider dets grænse. STL-beholdervektoren kan bruges til dynamisk at allokere et array, der kan variere i størrelse.

Dette kan kun bruges i C++, da C ikke har klasser. Bemærk, at initializer-liste-syntaksen her kræver en compiler, der understøtter 2011 C++-standarden, og selvom det er ret sandsynligt, at din compiler gør det, er det noget, du skal være opmærksom på.

Eksempel:

C++




// C++ program to demonstrate> // array of strings using> // vector class> #include> #include> #include> // Driver code> int> main()> {> >// Declaring Vector of String type> >// Values can be added here using> >// initializer-list> >// syntax> >std::vector colour{>'Blue'>,>'Red'>,> >'Orange'>};> >// Strings can be added at any time> >// with push_back> >colour.push_back(>'Yellow'>);> >// Print Strings stored in Vector> >for> (>int> i = 0; i std::cout << colour[i] << ' '; }>

vikas diviakirti

>

>

Produktion

Blue Red Orange Yellow>

Forklaring:

  • Vektorer er dynamiske arrays og giver dig mulighed for at tilføje og fjerne elementer til enhver tid.
  • Enhver type eller klasse kan bruges i vektorer, men en given vektor kan kun indeholde én type.

5. Brug af Array Class

Et array er en homogen blanding af data, der lagres kontinuerligt i hukommelsesrummet. STL-beholderarrayet kan bruges til at allokere et array med fast størrelse. Det kan bruges meget på samme måde som en vektor, men størrelsen er altid fast.

Eksempel:

C++




// C++ program to demonstrate> // array of string using STL array> #include> #include> #include> // Driver code> int> main()> {> >// Initialize array> >std::array colour{>'Blue'>,>'Red'>,> >'Orange'>,>'Yellow'>};> >// Printing Strings stored in array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> >return> 0;> }>

>

'eulers nummer i java'

>

Produktion

Blue Red Orange Yellow>

Dette er på ingen måde de eneste måder at lave en samling af strenge på. C++ tilbyder adskillige containerklasser, som hver har forskellige afvejninger og funktioner, og alle eksisterer for at opfylde de krav, du vil have i dine projekter. Udforsk og hav det sjovt!

Konklusion: Ud af alle metoderne ser Vector ud til at være den bedste måde at skabe en række strenge i C++.

s.