共用方式為


fill_n

指派新值給以特定項目開頭之範圍中的指定項目數。

template<class OutputIterator, class Size, class Type> 
   OutputIterator fill_n( 
      OutputIterator First,  
      Size Count,  
      const Type& Val 
   ); 

參數

  • First
    輸出迭代器,將範圍中第一個指派的項目的位置定址為 Val。

  • Count
    帶正負號或不帶正負號的整數類型,指定要指派值的項目數量。

  • Val
    值,要指派至範圍 [First, First + Count) 中之項目。

傳回值

接在最後一個填滿項目的迭代器 (如果 Count > 為零),否則為第一個項目。

備註

目的範圍必須是有效的。所有指標必須是可取值的 (Dereferenceable),而且最後一個位置可從第一個位置透過遞增方式到達。 在範圍大小上的複雜性是線性的。

fill_n 有兩個相關表單:

如需這些函式之行為的詳細資訊,請參閱已檢查的迭代器

範例

// alg_fill_n.cpp
// compile using /EHsc
#include <vector>
#include <algorithm>
#include <iostream>

int main() 
{
    using namespace std;
    vector <int> v;

    for ( auto i = 0 ; i < 9 ; ++i )
        v.push_back( 0 );

    cout << "  vector v = ( " ;
    for ( const auto &w : v )
        cout << w << " ";
    cout << ")" << endl;

    // Fill the first 3 positions with a value of 1, saving position.
    auto pos = fill_n( v.begin(), 3, 1 );

    cout << "modified v = ( " ;
    for ( const auto &w : v )
        cout << w << " ";
    cout << ")" << endl;

    // Fill the next 3 positions with a value of 2, using last position.
    fill_n( pos, 3, 2 );

    cout << "modified v = ( " ;
    for ( const auto &w : v )
        cout << w << " ";
    cout << ")" << endl;

    // Fill the last 3 positions with a value of 3, using relative math.
    fill_n( v.end()-3, 3, 3 );

    cout << "modified v = ( " ;
    for ( const auto &w : v )
        cout << w << " ";
    cout << ")" << endl;
}

Output

  vector v = ( 0 0 0 0 0 0 0 0 0 )
modified v = ( 1 1 1 0 0 0 0 0 0 )
modified v = ( 1 1 1 2 2 2 0 0 0 )
modified v = ( 1 1 1 2 2 2 3 3 3 )

需求

標頭:<algorithm>

命名空間: std

請參閱

參考

標準樣板程式庫