Crea un array di stringhe in C++
-
Usa il contenitore
std::vector
per creare un array di stringhe in C++ -
Usa il contenitore
std::array
per creare un array di stringhe in C++ -
Usa la notazione
string arr[]
per creare un array di stringhe in C++ -
Usa la notazione
char arr[][]
per creare un array di stringhe in C++
Questo tutorial spiegherà diversi metodi su come creare un array di stringhe in C++.
Usa il contenitore std::vector
per creare un array di stringhe in C++
Il contenitore std::vector
dell’STL fornisce un array dinamico per oggetti dati generici che possono essere utilizzati per creare un array di stringhe. Gli elementi in std::vector
sono memorizzati in modo contiguo; pertanto, è possibile accedervi in modo efficiente senza spese generali.
D’altra parte, std::vector
di solito occupa più spazio di archiviazione rispetto a diversi tipi di array statici perché il primo richiede di allocare spazio extra per l’efficienza della gestione della memoria. Inoltre, std::vector
fornisce utili funzioni membro per la manipolazione di elementi come la costruzione di elementi sul posto con la funzione emplace_back
, come illustrato nell’esempio seguente.
#include <iostream>
#include <string>
#include <vector>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;
template <typename T>
void printVector(std::vector<T> v) {
for (const auto &item : v) {
cout << item << "; ";
}
cout << endl;
}
int main() {
vector<string> str_arr1 = {"Sunny Cove", "Willow Cove", "Golden Cove",
"Ocean Cove"};
printVector(str_arr1);
str_arr1.emplace_back("Palm Cove");
printVector(str_arr1);
return EXIT_SUCCESS;
}
Produzione:
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Palm Cove;
Usa il contenitore std::array
per creare un array di stringhe in C++
In alternativa, si può usare il contenitore std::array
per dichiarare un array statico. Questi array sono simili agli array in stile C in termini di efficienza del footprint di memoria e forniscono le funzioni membro comuni per l’accessibilità. Il contenitore std::array
utilizza l’inizializzazione aggregata. Può anche essere iterato utilizzando le funzioni iteratrici comuni e manipolato utilizzando l’algoritmo std::copy
, come mostrato nel seguente esempio di codice.
#include <array>
#include <iostream>
#include <iterator>
#include <string>
using std::array;
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::string;
int main() {
array<string, 4> str_arr2 = {"Sunny Cove", "Willow Cove", "Golden Cove",
"Ocean Cove"};
array str_arr3 = {"Sunny Cove", "Willow Cove", "Golden Cove", "Ocean Cove"};
std::copy(str_arr3.begin(), str_arr3.end(),
std::ostream_iterator<string>(cout, "; "));
cout << endl;
return EXIT_SUCCESS;
}
Produzione:
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Usa la notazione string arr[]
per creare un array di stringhe in C++
Un altro metodo utile per creare un array di stringhe è l’array in stile C di oggetti string
; questo dichiarerebbe un array di stringhe a elementi fissi a cui è possibile accedere in modo casuale con la notazione dell’indice e iterato con un cicli for
basato sull’intervallo. Ricorda che dovresti implementare funzioni personalizzate per la manipolazione degli elementi e l’accessibilità come incluso nella classe std::array
.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string str_arr4[4] = {"Sunny Cove", "Willow Cove", "Golden Cove",
"Ocean Cove"};
for (auto &i : str_arr4) {
cout << i << "; ";
}
cout << endl;
return EXIT_SUCCESS;
}
Produzione:
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Usa la notazione char arr[][]
per creare un array di stringhe in C++
Puoi anche allocare un array di stringhe che ha una lunghezza fissa, con ogni stringa che ha il numero massimo di caratteri predefinito. Nota che questo metodo dichiara essenzialmente un array char
bidimensionale che memorizzerà ogni stringa in una singola riga della matrice. Se la lista dell’inizializzatore include la stringa con più caratteri rispetto alla seconda dimensione dell’array, l’ultima parte della stringa verrà ritagliata per adattarsi alla riga.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
char str_arr5[4][20] = {"Sunny Cove", "Willow Cove", "Golden Cove",
"Ocean Cove"};
for (auto &i : str_arr5) {
cout << i << "; ";
}
cout << endl;
return EXIT_SUCCESS;
}
Produzione:
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook