Crear un array de cadenas en C++

Jinku Hu 12 octubre 2023
  1. Utilice el contenedor std::vector para crear un array de cadenas en C++
  2. Utilice el contenedor std::array para crear un array de cadenas en C++
  3. Utilice la notación string arr[] para crear un array de cadenas en C++
  4. Utilice la notación char arr[][] para crear un array de cadenas en C++
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;
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Artículo relacionado - C++ Array