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

C++

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

Vectorをゼロクリアする方法を紹介します。

スポンサーリンク

方法

Vectorをゼロクリアする方法は、2つあります。

ループ

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

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

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

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

上記のforループは、対象のVectorをゼロクリアします。

使用例

#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をゼロクリアします。

使用例

#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をゼロクリアする方法は、次の2つです。

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

コメント

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