Erstellen Sie ein Array von Strings in C++

Jinku Hu 12 Oktober 2023
  1. Verwenden Sie den Container std::vector, um ein Array von Strings in C++ zu erstellen
  2. Verwenden Sie den Container std::array, um ein Array von Strings in C++ zu erstellen
  3. Verwenden Sie die Notation string arr[], um ein Array von Strings in C++ zu erstellen
  4. Verwenden Sie die Notation char arr[][], um ein Array von Strings in C++ zu erstellen
Erstellen Sie ein Array von Strings in C++

In diesem Tutorial werden verschiedene Methoden zum Erstellen eines String-Arrays in C++ erläutert.

Verwenden Sie den Container std::vector, um ein Array von Strings in C++ zu erstellen

Der Container std::vector der STL stellt ein dynamisches Array für generische Datenobjekte bereit, mit dem ein Array von Strings erstellt werden kann. Die Elemente in std::vector werden zusammenhängend gespeichert; daher kann ohne Overhead effizient auf sie zugegriffen werden.

Auf der anderen Seite belegt std::vector normalerweise mehr Speicherplatz als verschiedene Arten von statischen Arrays, da erstere zusätzlichen Speicherplatz für die Speicherverwaltungseffizienz zuweisen müssen. Darüber hinaus bietet std::vector nützliche Memberfunktionen für die Elementmanipulation wie die direkte Elementkonstruktion mit der Funktion emplace_back, wie im folgenden Beispiel gezeigt.

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

Ausgabe:

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

Verwenden Sie den Container std::array, um ein Array von Strings in C++ zu erstellen

Alternativ kann man den Container std::array verwenden, um ein statisches Array zu deklarieren. Diese Arrays ähneln den Arrays des C-Stils in Bezug auf die Effizienz des Speicherbedarfs und bieten die gemeinsamen Memberfunktionen für die Zugänglichkeit. Der Container std::array verwendet die Aggregat-Initialisierung. Es kann auch mit den üblichen Iteratorfunktionen iteriert und mit dem std::copy-Algorithmus manipuliert werden, wie im folgenden Codebeispiel gezeigt.

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

Ausgabe:

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

Verwenden Sie die Notation string arr[], um ein Array von Strings in C++ zu erstellen

Eine weitere nützliche Methode, um ein Array von Strings zu erstellen, ist das Array von string-Objekten im C-Stil; dies würde ein String-Array mit festen Elementen deklarieren, auf das mit Index-Notation wahlfrei zugegriffen und mit einer bereichsbasierten for-Schleife iteriert werden kann. Denken Sie daran, dass Sie benutzerdefinierte Funktionen für die Elementmanipulation und Zugänglichkeit implementieren müssen, wie sie in der Klasse std::array enthalten sind.

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

Ausgabe:

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

Verwenden Sie die Notation char arr[][], um ein Array von Strings in C++ zu erstellen

Sie können auch ein String-Array mit einer festen Länge zuweisen, wobei jeder String die maximale Anzahl von vordefinierten Zeichen hat. Beachten Sie, dass diese Methode im Wesentlichen ein zweidimensionales char-Array deklariert, das jeden String in einer einzelnen Zeile der Matrix speichert. Wenn die Initialisierungsliste die Zeichenkette mit mehr Zeichen als der zweiten Dimension des Arrays enthält, wird der letzte Teil der Zeichenkette beschnitten, damit sie in die Zeile passt.

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

Ausgabe:

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

Verwandter Artikel - C++ Array