向量一經聲明,其所有值均初始化為零。下麵是一個示例代碼來演示相同的。
// C++ program for displaying the default initialization
// of the vector vect[]
#include<bits/stdc++.h>
using namespace std;
int main()
{
// Creating a vector of size 8
vector<int> vect(8);
// Printing default values
for (int i=0; i<vect.size(); i++)
cout << ' ' << vect[i];
}
輸出:
0 0 0 0 0 0 0 0
如果我們希望將向量初始化為特定值,例如1,該怎麽辦?為此,我們可以將值與向量的大小一起傳遞。
// C++ program for displaying specified initialization
// of the vector vect[]
#include<bits/stdc++.h>
using namespace std;
int main ()
{
// Creates a vector of size 8 with all initial
// values as 1.
vector<int> vect(8, 1);
for (int i=0; i<vect.size(); i++)
cout << ' ' << vect[i];
}
輸出:
1 1 1 1 1 1 1 1
如果我們希望將前4個值初始化為100並將其餘6個值初始化為200怎麽辦?
一種方法是手動為向量中的每個位置提供一個值。 STL中提供的其他方法(標準模板庫)是fill和fill_n。
- fill()
“填充”函數將值“ val”分配給[begin,end)範圍內的所有元素,其中“ begin”是初始位置,“ end”是最後位置。注意:請注意,範圍中包括“開始”,但不包括“結束”。以下是演示“填充”的示例:
// C++ program to demonstrate working of fill() #include <bits/stdc++.h> using namespace std; int main () { vector<int> vect(8); // calling fill to initialize values in the // range to 4 fill(vect.begin() + 2, vect.end() - 1, 4); for (int i=0; i<vect.size(); i++) cout << vect[i] << " "; return 0; }
輸出:
0 0 4 4 4 4 4 0
- fill_n()
在fill_n()中,我們指定起始位置,要填充的元素數和要填充的值。以下代碼演示了fill_n的用法。// C++ program to demonstrate working of fil_n() #include <bits/stdc++.h> using namespace std; int main() { vector<int> vect(8); // calling fill to initialize first four values // to 7 fill_n(vect.begin(), 4, 7); for (int i=0; i<vect.size(); i++) cout << ' ' << vect[i]; cout << '\n'; // calling fill to initialize 3 elements from // "begin()+3" with value 4 fill_n(vect.begin() + 3, 3, 4); for (int i=0; i<vect.size(); i++) cout << ' ' << vect[i]; cout << '\n'; return 0; }
輸出:
7 7 7 7 0 0 0 0 7 7 7 4 4 4 0 0
相關用法
注:本文由純淨天空篩選整理自 fill() and fill_n() functions in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。