logo

Array van strings in C++ – 5 verschillende manieren om te creëren

In C++ is een string meestal slechts een array van (of een verwijzing naar) tekens die eindigt met het NULL-teken ‘ ‘. Een string is een 1-dimensionale array van karakters en een array van strings is een 2-dimensionale array van karakterswaarbij elke rij een tekenreeks bevat.

Hieronder staan ​​de 5 verschillende manieren om een ​​array van strings in C++ te maken:



  1. Gebruik makend van Wijzers
  2. Gebruik makend van 2D-array
  3. De ... gebruiken Snaarklasse
  4. De ... gebruiken Vectorklasse
  5. De ... gebruiken Array-klasse

1. Aanwijzers gebruiken

Aanwijzers zijn de symbolische weergave van een adres. In eenvoudige bewoordingen is een pointer iets dat het adres van een variabele erin opslaat. Bij deze methode wordt een array van letterlijke tekenreeksen gemaakt door een array van pointers waarinelke pointer verwijst naar een bepaalde string.

Voorbeeld:

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

arraylist-methoden

>

>

Uitvoer

Blue Red Orange Yellow>

Uitleg:

  • Het aantal snaren staat vast, maar dat hoeft niet. De 4 kunnen worden weggelaten en de compiler berekent de juiste grootte.
  • Deze strings zijn constanten en hun inhoud kan niet worden gewijzigd. Omdat letterlijke tekenreeksen (letterlijk: de tekenreeksen tussen aanhalingstekens) in een alleen-lezen gebied van het geheugen voorkomen, moeten we hier const opgeven om ongewenste toegangen te voorkomen die het programma kunnen laten crashen.

2. Een 2D-array gebruiken

Een 2D-array is de eenvoudigste vorm van een multidimensionale array waarin de gegevens in tabelvorm worden opgeslagen. Deze methode is handig als de lengte van alle strings bekend is en een bepaalde geheugenvoetafdruk gewenst is. Ruimte voor strings wordt in één blok toegewezen

Voorbeeld:

C++

Python is numeriek




// 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;> }>

>

>

Uitvoer

Blue Red Orange Yellow>

Uitleg:

  • Zowel het aantal snaren als de grootte van de snaren staan ​​vast. De 4 kunnen opnieuw worden weggelaten en de juiste grootte wordt door de compiler berekend. De tweede dimensie moet echter worden opgegeven (in dit geval 10), zodat de compiler een geschikte geheugenindeling kan kiezen.
  • Elke string kan worden gewijzigd, maar neemt de volledige ruimte in beslag die door de tweede dimensie wordt gegeven. Ze worden allemaal naast elkaar in het geheugen geplaatst en kunnen niet van grootte veranderen.
  • Soms is controle over de geheugenvoetafdruk wenselijk, en dit zal een geheugengebied toewijzen met een vaste, regelmatige lay-out.

3. De klasse String gebruiken

De STL-reeks of tekenreeks klasse kan worden gebruikt om een ​​array van veranderlijke strings te creëren. Bij deze methode ligt de grootte van de snaar niet vast en kunnen de snaren worden gewijzigd, waardoor deze op de een of andere manier toch dynamisch van aard wordt std::tekenreeks kan worden gebruikt om een ​​stringarray te maken met behulp van ingebouwde functies.

Voorbeeld:

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] <<>' '>;> }>

>

>

Uitvoer

java int als tekenreeks
Blue Red Orange Yellow>

Uitleg:

De array heeft een vaste grootte, maar dat hoeft niet. Ook hier kunnen de 4 worden weggelaten, en de compiler zal de juiste grootte van de array bepalen. De snaren zijn ook veranderbaar, waardoor ze kunnen worden gewijzigd.

4. Gebruik van de vectorklasse

A vector is een dynamische array die zijn grootte verdubbelt wanneer een nieuw teken wordt toegevoegd dat de limiet overschrijdt. De STL-containervector kan worden gebruikt om dynamisch een array toe te wijzen die in grootte kan variëren.

Dit is alleen bruikbaar in C++, omdat C geen klassen heeft. Merk op dat de syntaxis van de initialisatielijst hier een compiler vereist die de C++-standaard van 2011 ondersteunt, en hoewel het zeer waarschijnlijk is dat uw compiler dat doet, is het iets om op te letten.

Voorbeeld:

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] << ' '; }>

>

>

Uitvoer

Blue Red Orange Yellow>

Uitleg:

theelepel versus eetlepel
  • Vectoren zijn dynamische arrays waarmee u op elk gewenst moment items kunt toevoegen en verwijderen.
  • Elk type of klasse kan in vectoren worden gebruikt, maar een bepaalde vector kan slechts één type bevatten.

5. Gebruik van de Array-klasse

Een array is een homogeen mengsel van gegevens dat continu in de geheugenruimte wordt opgeslagen. De STL-containerarray kan worden gebruikt om een ​​array met een vaste grootte toe te wijzen. Het kan op dezelfde manier worden gebruikt als een vector, maar de grootte staat altijd vast.

Voorbeeld:

beste glimlach ter wereld

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

>

>

Uitvoer

Blue Red Orange Yellow>

Dit zijn zeker niet de enige manieren om een ​​verzameling snaren te maken. C++ biedt verschillende containerklassen, die elk verschillende afwegingen en kenmerken hebben, en ze zijn allemaal bedoeld om te voldoen aan de vereisten die u in uw projecten zult hebben. Ontdek en heb plezier!

Conclusie: Van alle methoden lijkt Vector de beste manier om een ​​array van Strings in C++ te maken.

S.