Créer un tableau de chaînes en C++

Jinku Hu 12 octobre 2023
  1. Utilisez le conteneur std::vector pour créer un tableau de chaînes en C++
  2. Utilisez le conteneur std::array pour créer un tableau de chaînes en C++
  3. Utilisez la notation string arr[] pour créer un tableau de chaînes en C++
  4. Utilisez la notation char arr[][] pour créer un tableau de chaînes en C++
Créer un tableau de chaînes en C++

Ce tutoriel expliquera plusieurs méthodes pour créer un tableau de chaînes en C++.

Utilisez le conteneur std::vector pour créer un tableau de chaînes en C++

Le conteneur std::vector de la STL fournit un tableau dynamique pour les objets de données génériques qui peuvent être utilisés pour créer un tableau de chaînes. Les éléments de std::vector sont stockés de manière contiguë ; ainsi, ils peuvent être consultés efficacement sans frais généraux.

D’un autre côté, std::vector occupe généralement plus de stockage que les différents types de tableaux statiques car le premier nécessite d’allouer un espace supplémentaire pour une gestion efficace de la mémoire. De plus, std::vector fournit des fonctions membres utiles pour la manipulation d’éléments comme la construction d’éléments sur place avec la fonction emplace_back, comme illustré dans l’exemple suivant.

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

Production:

Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Palm Cove;

Utilisez le conteneur std::array pour créer un tableau de chaînes en C++

Alternativement, on peut utiliser le conteneur std::array pour déclarer un tableau statique. Ces tableaux sont similaires aux tableaux de style C en termes d’efficacité d’empreinte mémoire et fournissent les fonctions membres communes pour l’accessibilité. Le conteneur std::array utilise l’initialisation agrégée. Il peut également être itéré à l’aide des fonctions d’itérateur courantes et manipulé à l’aide de l’algorithme std::copy, comme illustré dans l’exemple de code suivant.

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

Production:

Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;

Utilisez la notation string arr[] pour créer un tableau de chaînes en C++

Une autre méthode utile pour créer un tableau de chaînes est le tableau de style C d’objets string ; cela déclarerait un tableau de chaînes à éléments fixes qui peut être accédé de manière aléatoire avec une notation d’index et itéré avec une boucle for basée sur une plage. N’oubliez pas que vous devrez implémenter des fonctions personnalisées pour la manipulation et l’accessibilité des éléments, telles qu’elles sont incluses dans la 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;
}

Production:

Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;

Utilisez la notation char arr[][] pour créer un tableau de chaînes en C++

Vous pouvez également allouer un tableau de chaînes de longueur fixe, chaque chaîne ayant le nombre maximal de caractères prédéfini. Notez que cette méthode déclare essentiellement un tableau char à deux dimensions qui stockera chaque chaîne dans une seule ligne de la matrice. Si la liste d’initialisation comprend la chaîne avec plus de caractères que la deuxième dimension du tableau, la dernière partie de la chaîne sera rognée pour tenir dans la ligne.

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

Production:

Sunny Cove;
Willow Cove;
Golden Cove;
Ocean Cove;
Auteur: 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

Article connexe - C++ Array