Crie um array de strings em C++
-
Use o container
std::vector
para criar um array de strings em C++ -
Use o contêiner
std::array
para criar um array de strings em C++ -
Use a notação
string arr[]
para criar um array de strings em C++ -
Use a notação
char arr[][]
para criar um array de strings em C++
Este tutorial explicará vários métodos de como criar um array de strings em C++.
Use o container std::vector
para criar um array de strings em C++
O contêiner std::vector
do STL fornece um array dinâmico para objetos de dados genéricos que podem ser utilizados para criar um array de strings. Os elementos em std::vector
são armazenados contiguamente; portanto, eles podem ser acessados de forma eficiente sem sobrecarga.
Por outro lado, std::vector
normalmente ocupa mais armazenamento do que diferentes tipos de arrays estáticos porque o primeiro requer a alocação de espaço extra para eficiência de gerenciamento de memória. Além disso, std::vector
fornece funções de membro úteis para manipulação de elementos, como a construção de elementos no local com a função emplace_back
, conforme demonstrado no exemplo a seguir.
#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;
}
Resultado:
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Palm Cove;
Use o contêiner std::array
para criar um array de strings em C++
Alternativamente, pode-se usar o contêiner std::array
para declarar um array estático. Essas matrizes são semelhantes às matrizes de estilo C em termos de eficiência da área de cobertura da memória e fornecem as funções de membro comuns para acessibilidade. O contêiner std::array
usa inicialização agregada. Ele também pode ser iterado usando as funções iteradoras comuns e manipulado usando o algoritmo std::copy
, conforme mostrado no exemplo de código a seguir.
#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;
}
Resultado:
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Use a notação string arr[]
para criar um array de strings em C++
Outro método útil para criar um array de strings é o array estilo C de objetos string
; isso declararia um array de string de elemento fixo que pode ser acessada aleatoriamente com notação de índice e iterada com um loop for
baseado em intervalo. Lembre-se de que você precisaria implementar funções personalizadas para manipulação de elementos e acessibilidade, conforme incluído na 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;
}
Resultado:
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Use a notação char arr[][]
para criar um array de strings em C++
Você também pode alocar um array de string de comprimento fixo, com cada string tendo o número máximo de caracteres predefinidos. Observe que este método declara essencialmente um array char
bidimensional que armazenará cada string em uma única linha do array. Se a lista do inicializador incluir a string com mais caracteres do que a segunda dimensão do array, a última parte da string será cortada para caber na linha.
#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;
}
Resultado:
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