Crear un array de cadenas en C++
-
Utilice el contenedor
std::vector
para crear un array de cadenas en C++ -
Utilice el contenedor
std::array
para crear un array de cadenas en C++ -
Utilice la notación
string arr[]
para crear un array de cadenas en C++ -
Utilice la notación
char arr[][]
para crear un array de cadenas en C++
Este tutorial explicará varios métodos de cómo crear un array de cadenas en C++.
Utilice el contenedor std::vector
para crear un array de cadenas en C++
El contenedor std::vector
del STL proporciona un array dinámica para objetos de datos genéricos que se pueden utilizar para crear un array de cadenas. Los elementos en std::vector
se almacenan contiguamente; por lo tanto, se puede acceder a ellos de manera eficiente sin gastos generales.
Por otro lado, std::vector
suele ocupar más almacenamiento que los diferentes tipos de matrices estáticas porque el primero requiere asignar espacio adicional para la eficiencia de la gestión de memoria. Además, std::vector
proporciona funciones miembro útiles para la manipulación de elementos como la construcción de elementos en el lugar con la función emplace_back
, como se demuestra en el siguiente ejemplo.
#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;
}
Producción :
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove; Palm Cove;
Utilice el contenedor std::array
para crear un array de cadenas en C++
Alternativamente, se puede usar el contenedor std::array
para declarar un array estática. Estas matrices son similares a los arrays de estilo C en términos de eficiencia de la huella de memoria y proporcionan las funciones de miembros comunes para la accesibilidad. El contenedor std::array
utiliza la inicialización agregada. También se puede iterar usando las funciones de iterador comunes y manipular usando el algoritmo std::copy
, como se muestra en el siguiente ejemplo de código.
#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;
}
Producción :
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;
Utilice la notación string arr[]
para crear un array de cadenas en C++
Otro método útil para crear un array de cadenas es el array estilo C de objetos string
; esto declararía un array de cadenas de elementos fijos a la que se puede acceder aleatoriamente con notación de índice e iterar con un bucle for
basado en rangos. Recuerde que necesitaría implementar funciones personalizadas para la manipulación y accesibilidad de elementos como se incluye en la clase 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;
}
Producción :
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;
Utilice la notación char arr[][]
para crear un array de cadenas en C++
También puede asignar un array de cadenas que tenga una longitud fija, y cada cadena tenga el número máximo de caracteres predefinido. Tenga en cuenta que este método esencialmente declara un array char
bidimensional que almacenará cada cadena en una sola fila del array. Si la lista de inicializadores incluye la cadena con más caracteres que la segunda dimensión del array, la última parte de la cadena se recortará para que quepa en la línea.
#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;
}
Producción :
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