Como limpar os valores dos elementos da array em C++
-
Utilize Builtin
fill()
Método para Limpar Elementos de array em C++ -
Utilize
std::fill()
Algoritmo para Limpar Elementos de Array em C++ -
Utilize
fill_n()
Algoritmo para Limpar Elementos do Array
Este artigo apresentará múltiplos métodos sobre como limpar valores de elementos de array em C++.
Utilize Builtin fill()
Método para Limpar Elementos de array em C++
O recipiente std::array
fornece múltiplos métodos embutidos que operam em seus elementos, um dos quais é o método fill()
. Ele atribui o valor dado a cada elemento do objeto array. Note que você pode construir um array com qualquer tipo de elemento e ainda utilizar a função fill()
para passar o valor para atribuir cada membro do container.
#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 |
Utilize std::fill()
Algoritmo para Limpar Elementos de Array em C++
Alternativamente, podemos utilizar o algoritmo std::fill
definido na biblioteca STL <algorithm>
. Este método é chamado de objeto baseado em intervalo e atribui um determinado valor a seus elementos. O intervalo de elementos é passado como os dois primeiros argumentos, e o terceiro especifica um valor a ser atribuído. A partir da versão C++17, o usuário também pode especificar a política de execução como um argumento opcional (veja os detalhes completos aqui.
#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 |
Utilize fill_n()
Algoritmo para Limpar Elementos do Array
Outro método útil do cabeçalho <algorithm>
é o algoritmo fill_n
, que é semelhante ao método acima, exceto que são necessários vários elementos que precisam ser modificados com o valor dado. Neste caso, especificamos o valor de retorno do método size()
para emular o comportamento idêntico como no exemplo do código acima. Note que, a etiqueta de política de execução também se aplica a este método.
#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 |
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