fill_n
Přiřadí novou hodnotu zadanému počtu elementů v rozsahu, který začíná konkrétním elementem.
template<class OutputIterator, class Size, class Type>
OutputIterator fill_n(
OutputIterator First,
Size Count,
const Type& Val
);
Parametry
First
Výstupní iterátor, který řeší umístění prvního prvku v rozsahu, kterému má být přiřazena hodnota Val.Count
Typ celého čísla se znaménkem nebo bez znaménka určující počet prvků, kterým bude přiřazena hodnota.Val
Hodnota, kterou chcete přiřadit elementům v rozsahu [First, první + počet).
Vrácená hodnota
Iterátor na prvek, který následuje poslední vyplněný prvek, pokud je parametr Count > nula, jinak první prvek.
Poznámky
Cílový rozsah musí být platný; u všech ukazatelů musí být možné zrušit referenci a poslední pozice musí být dosažitelná z první pomocí přírůstků.Složitost je lineární s velikostí rozsahu.
fill_n má dva související formuláře:
Informace o chování těchto funkcí naleznete v tématu Checked – iterátory.
Příklad
// 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;
}
Výsledek
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 )
Požadavky
Záhlaví: <algoritmus>
Obor názvů: std