C++算法fill()和fill_n()

 

算法

返回值

作用

fill()

void

改填元素

fill_n()

_OutIt

改填元素

fill()的參數

_FwdIt _First, _FwdIt _Last, const _Ty& _Val

fill_n的參數

_OutIt _Dest, _Diff _Count, const _Ty& _Val

 

fill_n()的返回值爲一個容器的迭代器

 

//創建並初始化容器

vector<int> createStaticArr()

{

    vector<int> vectorInt;

    vectorInt.push_back(1);

    vectorInt.push_back(2);

    vectorInt.push_back(3);

    vectorInt.push_back(4);

    vectorInt.push_back(5);

    vectorInt.push_back(6);

    vectorInt.push_back(7);

    vectorInt.push_back(8);

    showArr(vectorInt);

    return vectorInt;

}

 

//輸出容器

void showArr(vector<int> Arr)

{

    vector<int>::iterator iteArr = Arr.begin();

    for (iteArr ; iteArr != Arr.end(); iteArr++)

    {

         cout << *iteArr << "\t";

    }

    cout << endl;

}

 

/*----fill()  "改填元素值"  和  fill_n()    該填元素值,n次*/

void my_fill(vector<int> &left, int val)

{

//前兩個參數爲需要改填容器的範圍,第三個參數是改填後的值

    fill(left.begin(), left.end()-2, val);

}

 

void my_fill_n(vector<int> &left,int count, int val)

{

    //第一個參數爲改填的開始位置,第二個參數爲改填的長度,第三個參數爲改填的值

    fill_n(left.begin(), count,val);

}

 

void main()

{

    cout << "第一條:"; vector<int> arr1 = createStaticArr();

    my_fill(arr1, 2);

    cout << "進行了fill()方法後:";

showArr(arr1);

    my_fill_n(arr1, 3, 5);

    cout << "進行了fill_n()方法後:";

showArr(arr1);

}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章