一、填充一個基本數據類型數組
#include <iostream> #include <algorithm> using namespace std; int main() { int arr[5]; fill(arr, arr+5, 0); for(int i=0; i<5; i++) { cout << arr[i] << " "; } return 0; }
fill函數可以將給定區間內的元素全部賦值為指定的值。在上面的示例中,我們定義了一個長度為5的int類型數組arr,然後使用fill函數將其內所有元素都賦值為0。最後,我們使用for循環輸出數組中的元素。
需要注意的是,fill函數的第一個參數是要填充的區間的起始地址,而第二個參數是要填充的區間的結束地址(不包括結束地址本身)。因此,在上面的示例中,fill(arr, arr+5, 0)的含義是將arr數組從arr[0]到arr[4]這個區間內的元素全部賦值為0。
二、填充一個STL容器
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; fill(vec.begin() + 1, vec.end() - 1, 0); for(auto x : vec) { cout << x << " "; } return 0; }
fill函數同樣可以用於STL容器中。在上面的示例中,我們定義了一個長度為5的vector類型容器vec,並將其初始化為{1, 2, 3, 4, 5}。然後,使用fill函數將vec[1]到vec[3]這個區間內的元素全部賦值為0,最後使用for循環輸出vector中的元素。
需要注意的是,STL容器的begin()函數和end()函數分別返回容器的起始迭代器和結束迭代器,因此fill(vec.begin() + 1, vec.end() – 1, 0)的含義是將vec容器中從第二個元素到倒數第二個元素這個區間內的元素全部賦值為0。
三、填充一個多維數組
#include <iostream> #include <algorithm> using namespace std; int main() { int arr[3][2]; fill(&arr[0][0], &arr[0][0] + sizeof(arr) / sizeof(int), 0); for(int i=0; i<3; i++) { for(int j=0; j<2; j++) { cout << arr[i][j] << " "; } cout << endl; } return 0; }
fill函數同樣可以用於填充多維數組。在上面的示例中,我們定義了一個3行2列的int類型多維數組arr,並使用fill函數將其全部元素都賦值為0。最後,使用雙重for循環輸出多維數組中的所有元素。
需要注意的是,對於多維數組,我們需要將起始地址指定為數組的第一個元素的地址,同時需要計算出整個數組的大小,即數組元素個數乘以每個元素的位元組數,這裡我們使用了sizeof(arr) / sizeof(int)來計算出數組的大小。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/306667.html