Алгоритм fill()
template< class ForwardIterator, class Type >
void
fill( ForwardIterator first,
ForwardIterator last, const Type& value );
fill() помещает копию значения value в каждый элемент диапазона, ограниченного парой итераторов [first,last).
#include <algorithm>
#include <list>
#include <string>
#include <iostream.h>
/* печатается:
исходная последовательность элементов массива:
0 1 1 2 3 5 8
массив после fill(ia+1,ia+6):
0 9 9 9 9 9 8
исходная последовательность элементов списка:
c eiffel java ada perl
список после fill(++ibegin,--iend):
c c++ c++ c++ perl
*/
int main()
{
const int value = 9;
int ia[] = { 0, 1, 1, 2, 3, 5, 8 };
ostream_iterator< int > ofile( cout, " " );
cout << "исходная последовательность элементов массива:\n";
copy( ia, ia+7, ofile ); cout << "\n\n";
fill( ia+1, ia+6, value );
cout << "массив после fill(ia+1,ia+6):\n";
copy( ia, ia+7, ofile ); cout << "\n\n";
string the_lang( "c++" );
string langs[5] = { "c", "eiffel", "java", "ada", "perl" };
list< string, allocator > il( langs, langs+5 );
ostream_iterator< string > sofile( cout, " " );
cout << "исходная последовательность элементов списка:\n";
copy( il.begin(), il.end(), sofile ); cout << "\n\n";
typedef list<string,allocator>::iterator iterator;
iterator ibegin = il.begin(), iend = il.end();
fill( ++ibegin, --iend, the_lang );
cout << "список после fill(++ibegin,--iend):\n";
copy( il.begin(), il.end(), sofile ); cout << "\n\n";
}