Créer un tableau de structures en C++

Jinku Hu 12 octobre 2023
  1. Utiliser la déclaration de tableau de style C pour créer un tableau de structs de longueur fixe
  2. Utilisez std::vector et le constructeur de liste d’initialisation pour créer un tableau de structs de longueur variable
Créer un tableau de structures en C++

Cet article présente plusieurs méthodes pour créer un ensemble de structures en C++.

Utiliser la déclaration de tableau de style C pour créer un tableau de structs de longueur fixe

Un tableau de longueur fixe de structs peut être déclaré en utilisant la notation de tableau de style C. Dans ce cas, nous avons défini une struct arbitraire nommée Company avec plusieurs données membres et initialisé un tableau de 2 éléments. Le seul inconvénient de cette méthode est que le tableau déclaré est un objet brut sans aucune fonction intégrée. Le côté positif est qu’il peut être plus efficace et plus rapide dans la structure des données que les conteneurs de la bibliothèque C++.

#include <iostream>
#include <string>
#include <vector>

using std::cout;
using std::endl;
using std::string;
using std::vector;

struct Company {
  string name;
  string ceo;
  float income;
  int employess;
};

int main() {
  Company comp_arr[2] = {{"Intel", "Bob Swan", 91213.11, 110823},
                         {"Apple", "Tim Cook", 131231.11, 137031}};

  for (const auto &arr : comp_arr) {
    cout << "Name: " << arr.name << endl
         << "CEO: " << arr.ceo << endl
         << "Income: " << arr.income << endl
         << "Employees: " << arr.employess << endl
         << endl;
  }

  return EXIT_SUCCESS;
}

Production :

Name: Intel
CEO: Bob Swan
Income: 91213.1
Employees: 110823


Name: Apple
CEO: Tim Cook
Income: 131231
Employees: 137031

Utilisez std::vector et le constructeur de liste d’initialisation pour créer un tableau de structs de longueur variable

Alternativement, nous pouvons utiliser un conteneur std::vector pour déclarer un tableau de variables qui fournit de multiples méthodes intégrées pour la manipulation des données. L’objet std::vector peut être initialisé avec la même notation que dans l’exemple précédent. De nouveaux éléments peuvent être ajoutés au tableau en utilisant la méthode traditionnelle push_back, et le dernier élément supprimé avec pop_back. Dans cet exemple, les éléments sont imprimés à la console un par un.

Notez que les membres de la liste d’initialisation doivent inclure des accolades extérieures pour une affectation et un formatage corrects.

#include <iostream>
#include <string>
#include <vector>

using std::cout;
using std::endl;
using std::string;
using std::vector;

struct Company {
  string name;
  string ceo;
  float income;
  int employess;
};

int main() {
  vector<Company> comp_arr = {{"Intel", "Bob Swan", 91213.11, 110823},
                              {"Apple", "Tim Cook", 131231.11, 137031}};

  for (const auto &arr : comp_arr) {
    cout << "Name: " << arr.name << endl
         << "CEO: " << arr.ceo << endl
         << "Income: " << arr.income << endl
         << "Employees: " << arr.employess << endl
         << endl;
  }

  return EXIT_SUCCESS;
}

Production :

Name: Intel
CEO: Bob Swan
Income: 91213.1
Employees: 110823


Name: Apple
CEO: Tim Cook
Income: 131231
Employees: 137031
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++ Struct

Article connexe - C++ Array