[C++]Vectorの要素を0埋めするには?

C++

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

Vectorをゼロ埋めする方法を紹介します。

スポンサーリンク

方法

Vectorを0埋めする方法は、2つあります。

ループ

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

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

そして、for文の{}内で、Vectorの全てのインデックスの要素に「0」を代入します。

//myVec = 対象のVector
for (int i = 0; i < myVec.size(); i++) {
     myVec[i] = 0;
}

上記のforループは、Vectorの要素を0埋めします。

使用例

#include <iostream>
#include <vector>
using namespace std;

int main(void){
    
    vector<int> nums = { 1, 2, 3, 4, 5, 6 };
    
    for (int i = 0; i < nums.size(); 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引数にVctorから呼び出したbegin()、第2引数にVectorから呼び出したend()を指定します。

そして、std::fill()の第3引数に「0」を指定します。

//myVec = 対象のVector
std::fill(myVec.begin(), myVec.end(), 0);

上記のstd::fill()は、Vectorの要素を0埋めします。

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

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

使用例

#include <iostream>
#include <vector>
using namespace std;

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

まとめ

Vectorを0埋めする方法は、次の2つです。

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

コメント

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