[C++]配列をゼロクリアするには?

C++

どうも、ちょげ(@chogetarou)です。

配列(array)をゼロクリアする方法を紹介します。

スポンサーリンク

方法

配列(array)をゼロクリアする方法は、2つあります。

ループ

ひとつは、ループを使う方法です。

まず、配列のインデックスをループします。
(0から配列の要素数を「-1」した値までループ)

そして、ループ処理で、配列の全てのインデックスの要素に「0」を代入します。

//myArray = 対象の配列
for (int i = 0; i < size(myArray); i++) {
     myArray[i] = 0;
}

上記のループは、対象の配列(array)をゼロクリアします。

使用例

#include <iostream>
using namespace std;

int main(void){
    
    int nums[6] = { 1, 2, 3, 4, 5, 6 };
    
    for (int i = 0; i < size(nums); i++) {
        nums[i] = 0;
    }
    
    for (int item: nums) {
        cout << item << endl;
    }

    return 0;
}
出力:
0
0
0
0
0
0

std::fill()

もうひとつは、std::fill()を使う方法です。

まず、std::fill()を呼び出します。

std::fill()の第1引数にbegin()、第2引数にend()、第3引数に「0」を指定します。

そして、begin()とend()の両方の引数に、配列を指定します。

//myArray = 対象の配列
std::fill(begin(myArray), end(myArray), 0);

上記のstd::fill()は、対象の配列(array)をゼロクリアします。

使用例

#include <iostream>
using namespace std;

int main(void){
    
    int nums[6] = { 1, 2, 3, 4, 5, 6 };
    
    fill(begin(nums), end(nums), 0);
    
    for (int item: nums) {
        cout << item << endl;
    }
    
    return 0;
}
出力:
0
0
0
0
0
0

まとめ

配列(array)をゼロクリアする方法は、次の2つです。

  • ループを使う方法
    for (int i = 0; i < size(myArray); i++) { myArray[i] = 0; }
  • std::fill()を使う方法
    std::fill(begin(myArray), end(myArray), 0);

コメント

タイトルとURLをコピーしました