Löschen von Array-Elementwerten in C++

Jinku Hu 12 Oktober 2023
  1. Verwendung von die eingebaute fill()-Methode zum Löschen von Array-Elementen in C++
  2. Verwenden Sie den std::fill() Algorithmus, um Array-Elemente in C++ zu löschen
  3. Verwendung von den fill_n() Algorithmus zum Löschen von Array-Elementen
Löschen von Array-Elementwerten in C++

In diesem Artikel werden mehrere Methoden zum Löschen von Array-Elementwerten in C++ vorgestellt.

Verwendung von die eingebaute fill()-Methode zum Löschen von Array-Elementen in C++

Der std::array Container stellt mehrere eingebaute Methoden zur Verfügung, die auf seinen Elementen arbeiten, eine davon ist die fill() Methode. Sie weist jedem Element des Array-Objekts den angegebenen Wert zu. Beachten Sie, dass Sie ein Array mit jedem Elementtyp konstruieren können und trotzdem die Funktion fill() verwenden können, um den Wert zu übergeben, der jedem Element des Containers zugewiesen wird.

#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>

using std::array;
using std::cout;
using std::endl;
using std::fill;
using std::fill_n;

int main() {
  array<int, 10> nums{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  cout << "| ";
  for (const auto &item : nums) {
    cout << item << " | ";
  }
  cout << endl;

  nums.fill(0);

  cout << "| ";
  for (const auto &item : nums) {
    cout << item << " | ";
  }

  return EXIT_SUCCESS;
}

Ausgabe:

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |

Verwenden Sie den std::fill() Algorithmus, um Array-Elemente in C++ zu löschen

Alternativ können wir den std::fill Algorithmus verwenden, der in der STL <algorithm> Bibliothek definiert ist. Diese Methode wird auf einem bereichsbasierten Objekt aufgerufen und weist seinen Elementen einen bestimmten Wert zu. Der Bereich von Elementen wird als die ersten beiden Argumente übergeben, und das dritte Argument gibt einen zuzuweisenden Wert an. Ab der Version C++17 kann der Benutzer auch die Ausführungsrichtlinie als optionales Argument angeben (siehe die vollständigen Details hier.

#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>

using std::array;
using std::cout;
using std::endl;
using std::fill;
using std::fill_n;

int main() {
  array<int, 10> nums{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  cout << "| ";
  for (const auto &item : nums) {
    cout << item << " | ";
  }
  cout << endl;

  std::fill(nums.begin(), nums.end(), 0);

  cout << "| ";
  for (const auto &item : nums) {
    cout << item << " | ";
  }

  return EXIT_SUCCESS;
}

Ausgabe:

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |

Verwendung von den fill_n() Algorithmus zum Löschen von Array-Elementen

Eine weitere nützliche Methode aus dem <algorithm> Header ist der fill_n Algorithmus, der der obigen Methode ähnlich ist, außer dass er mehrere Elemente benötigt, die mit dem gegebenen Wert modifiziert werden müssen. In diesem Fall haben wir den Rückgabewert der size() Methode angegeben, um das identische Verhalten wie im obigen Codebeispiel zu emulieren. Beachten Sie, dass das Ausführungsrichtlinien-Tag auch in dieser Methode gilt.

#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>

using std::array;
using std::cout;
using std::endl;
using std::fill;
using std::fill_n;

int main() {
  array<int, 10> nums{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  cout << "| ";
  for (const auto &item : nums) {
    cout << item << " | ";
  }
  cout << endl;

  std::fill_n(nums.begin(), nums.size(), 0);

  cout << "| ";
  for (const auto &item : nums) {
    cout << item << " | ";
  }

  return EXIT_SUCCESS;
}

Ausgabe:

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
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