どうも、ちょげ(@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);





コメント