Array von Structs in C++ erstellen

Jinku Hu 12 Oktober 2023
  1. Array-Deklaration im C-Stil verwenden, um Array of Structs mit fester Länge zu erstellen
  2. Verwendung von std::vector und des Initialisierungslisten-Konstruktors zum Erstellen eines Arrays variabler Länge von Strukturen
Array von Structs in C++ erstellen

Dieser Artikel demonstriert mehrere Methoden, wie ein Array von Structs in C++ erstellt werden kann.

Array-Deklaration im C-Stil verwenden, um Array of Structs mit fester Länge zu erstellen

Ein Array von Structs mit fester Länge kann mit der C-artigen Array-Notation [] deklariert werden. In diesem Fall haben wir ein beliebiges struct namens Company mit mehreren Datenelementen definiert und ein Array mit 2 Elementen initialisiert. Der einzige Nachteil dieser Methode ist, dass das deklarierte Array ein rohes Objekt ohne eingebaute Funktionen ist. Auf der Plusseite kann es eine effizientere und schnellere Datenstruktur sein als C++ Bibliothekscontainer.

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

Ausgabe:

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


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

Verwendung von std::vector und des Initialisierungslisten-Konstruktors zum Erstellen eines Arrays variabler Länge von Strukturen

Alternativ können wir einen std::vector-Container verwenden, um ein variables Array zu deklarieren, das mehrere eingebaute Methoden zur Datenmanipulation bietet. Das std::vector-Objekt kann mit der gleichen Notation wie im vorherigen Beispiel initialisiert werden. Neue Elemente können mit der traditionellen Methode push_back an das Array angehängt und das letzte Element mit pop_back entfernt werden. In diesem Beispiel werden die Elemente nacheinander auf der Konsole ausgegeben.

Beachten Sie, dass die Mitglieder der Initialisierungsliste für die korrekte Zuweisung und Formatierung äußere geschweifte Klammern enthalten müssen.

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

Ausgabe:

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


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

Verwandter Artikel - C++ Struct

Verwandter Artikel - C++ Array