Cómo borrar los valores de los elementos del array en C++

Jinku Hu 12 octubre 2023
  1. Usar el método fill() de Builtin para limpiar los elementos del array en C++
  2. Use el algoritmo std::fill() para limpiar los elementos del array en C++
  3. Use el algoritmo fill_n() para borrar elementos del array
Cómo borrar los valores de los elementos del array en C++

Este artículo presentará múltiples métodos sobre cómo limpiar los valores de los elementos del array en C++.

Usar el método fill() de Builtin para limpiar los elementos del array en C++

El contenedor std::array proporciona múltiples métodos incorporados que operan en sus elementos, uno de los cuales es el método fill(). Asigna el valor dado a cada elemento del objeto array. Observe que puede construir un array con cualquier tipo de elemento y aún así usar la función fill() para pasar el valor para asignar cada miembro del contenedor.

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

Resultado:

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

Use el algoritmo std::fill() para limpiar los elementos del array en C++

Alternativamente, podemos utilizar el algoritmo std::fill definido en la biblioteca STL <algorithm>. Este método se llama en el objeto basado en el rango y asigna un valor dado a sus elementos. El rango de elementos se pasa como los dos primeros argumentos, y el tercero especifica un valor a asignar. A partir de la versión C++17, el usuario también puede especificar la política de ejecución como un argumento opcional (ver los detalles completos aquí.

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

Resultado:

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

Use el algoritmo fill_n() para borrar elementos del array

Otro método útil del encabezado <algorithm> es el algoritmo fill_n, que es similar al método anterior, excepto que toma varios elementos que deben ser modificados con el valor dado. En este caso, especificamos el valor de retorno del método size() para emular el comportamiento idéntico al del ejemplo de código anterior. Nótese que, la etiqueta de política de ejecución se aplica en este método también.

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

Resultado:

| 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

Artículo relacionado - C++ Array