[C++]配列を特定の値で埋めるには?

C++

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

配列(array)を特定の値で埋める方法を紹介します。

スポンサーリンク

方法

配列(array)を特定の値で埋める方法は、2つあります。

ループ

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

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

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

//myArray =対象の配列, value=埋める値
for (int i = 0; i < size(myArray); i++) {
     myArray[i] = value; //埋める値を代入
}

上記のループは、配列(array)を特定の値で埋めます。

使用例

#include <iostream>
using namespace std;

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

std::fill()

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

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

std::fill()の第1引数にbegin()、第2引数にend()、第3引数に埋める値を指定します。

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

//myArray =対象の配列, value=埋める値
std::fill(begin(myArray), end(myArray), value);

上記のstd::fill()は、配列(array)の要素を第3引数の値で埋めます。

fill()の3つの引数には、次のものを指定します。

  • 第1引数:イテレータの最初の位置
  • 第2引数:イテレータの最後の位置
  • 第3引数:埋める値

使用例

#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] = value; }
  • std::fill()を使う方法
    std::fill(begin(myArray), end(myArray), value);

コメント

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