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

C++

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

Vectorを特定の値で埋める方法を紹介します。

スポンサーリンク

方法

Vectorを特定の値で埋める方法は、2つあります。

ループ

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

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

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

//myVec=対象のVector, value=埋める値
for (int i = 0; i < myVec.size(); i++) {
     myVec[i] = value;
}

上記のfor文は、Vectorを特定の値で埋めます。

使用例

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

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

std::fill()

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

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

std::fill()の第1引数にVctorから呼び出したbegin()、第2引数にVectorから呼び出したend()を指定します。

そして、std::fill()の第3引数に埋める値を指定します。

//myVec=対象のVector, value=埋める値
std::fill(myVec.begin(), myVec.end(), value);

上記のstd::fill()は、対象のVectorを特定の値で埋めます。

使用例

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

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

まとめ

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

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

コメント

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