logo

Matrice di stringhe in C++: 5 modi diversi per creare

In C++, una stringa è solitamente solo un array di (o un riferimento/punta a) caratteri che termina con il carattere NULL ' ‘. Una stringa è una matrice di caratteri unidimensionale e una matrice di stringhe è una matrice di caratteri bidimensionaledove ogni riga contiene una stringa.

Di seguito sono riportati i 5 modi diversi per creare un array di stringhe in C++:



  1. Utilizzando Puntatori
  2. Utilizzando Matrice 2D
  3. Usando il Classe di corde
  4. Usando il Classe vettoriale
  5. Usando il Classe di matrice

1. Utilizzo dei puntatori

I puntatori sono la rappresentazione simbolica di un indirizzo. In parole semplici, un puntatore è qualcosa che memorizza al suo interno l'indirizzo di una variabile. In questo metodo, un array di stringhe letterali viene creato da un array di puntatori in cuiogni puntatore punta a una stringa particolare.

Esempio:

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

elenco metodi java

>

>

Produzione

Blue Red Orange Yellow>

Spiegazione:

  • Il numero di stringhe è fisso, ma non è necessario che lo sia. Il 4 può essere omesso e il compilatore calcolerà la dimensione corretta.
  • Queste stringhe sono costanti e il loro contenuto non può essere modificato. Poiché le stringhe letterali (letteralmente, le stringhe tra virgolette) esistono in un'area di memoria di sola lettura, dobbiamo specificare const qui per prevenire accessi indesiderati che potrebbero mandare in crash il programma.

2. Utilizzando un array 2D

Un array 2D è la forma più semplice di un array multidimensionale in cui memorizza i dati in forma tabellare. Questo metodo è utile quando si conosce la lunghezza di tutte le stringhe e si desidera un particolare ingombro di memoria. Lo spazio per le stringhe verrà allocato in un unico blocco

Esempio:

C++




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

>

>

Produzione

Blue Red Orange Yellow>

Spiegazione:

alya manasa
  • Sia il numero di stringhe che la dimensione delle stringhe sono fissi. Il 4, ancora una volta, può essere tralasciato e la dimensione appropriata verrà calcolata dal compilatore. La seconda dimensione, però, deve essere data (in questo caso, 10), in modo che il compilatore possa scegliere un layout di memoria appropriato.
  • Ogni stringa può essere modificata ma occuperà tutto lo spazio dato dalla seconda dimensione. Ciascuno verrà disposto uno accanto all'altro in memoria e non potrà modificare le dimensioni.
  • A volte è auspicabile il controllo sull'impronta della memoria e ciò allocherà una regione di memoria con un layout fisso e regolare.

3. Utilizzando la classe String

La stringa STL o classe di stringhe può essere utilizzato per creare un array di stringhe mutabili. In questo metodo, la dimensione della stringa non è fissa e le stringhe possono essere modificate, il che in qualche modo la rende comunque di natura dinamica std::stringa può essere utilizzato per creare un array di stringhe utilizzando le funzioni integrate.

Esempio:

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

al metodo stringa java
>

>

Produzione

Blue Red Orange Yellow>

Spiegazione:

L'array ha dimensioni fisse, ma non è necessario che lo sia. Ancora una volta, il 4 qui può essere omesso e il compilatore determinerà la dimensione appropriata dell'array. Anche le corde sono mutabili, consentendo loro di essere cambiate.

4. Utilizzo della classe vettoriale

UN vettore è un array dinamico che raddoppia le sue dimensioni ogni volta che viene aggiunto un nuovo carattere che supera il suo limite. Il vettore contenitore STL può essere utilizzato per allocare dinamicamente un array che può variare in dimensioni.

Questo è utilizzabile solo in C++, poiché C non ha classi. Tieni presente che la sintassi dell'elenco di inizializzatori qui richiede un compilatore che supporti lo standard C++ 2011 e, sebbene sia molto probabile che il tuo compilatore lo faccia, è qualcosa di cui essere consapevole.

Esempio:

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

Java legge il file CSV

>

>

Produzione

Blue Red Orange Yellow>

Spiegazione:

  • I vettori sono array dinamici e ti consentono di aggiungere e rimuovere elementi in qualsiasi momento.
  • Nei vettori è possibile utilizzare qualsiasi tipo o classe, ma un dato vettore può contenere solo un tipo.

5. Utilizzo della classe Array

Un array è una miscela omogenea di dati archiviati continuamente nello spazio di memoria. L'array contenitore STL può essere utilizzato per allocare un array di dimensione fissa. Può essere utilizzato in modo molto simile a un vettore, ma la dimensione è sempre fissa.

Esempio:

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

>

>

Produzione

Blue Red Orange Yellow>

Questi non sono affatto gli unici modi per creare una raccolta di stringhe. C++ offre diverse classi contenitore, ognuna delle quali presenta vari compromessi e funzionalità, e tutte esistono per soddisfare i requisiti che avrai nei tuoi progetti. Esplora e divertiti!

Conclusione: Tra tutti i metodi, Vector sembra essere il modo migliore per creare un array di stringhe in C++.

aws redshift

S.