int a[N] = {1, 2, 3, 4, 5}; copy (a, a + N, ostream_iterator(cout, " ")); cout << endl; return 0; } fi ll, fi ll_n fi ll алгоритмі
fi rst жəне
last итераторларының көмегімен анықталған
тізбектің барлық элементтерін берілген
value мəніне алмастырады.
fi ll_n алгоритмі
n элементті берілген мəнге алмастыруды жүзеге асырады:
template void fi ll(For fi rst, For last, const T& value); template void fi ll_n(Out fi rst, Size n, const T& value); Бүтін сандардан тұратын жиымды толтыру мысалын қарастырайық:
#include #include using namespace std; int main(){ int a[5], i; fi ll (a, a + 5, 1); for (i = 0; i < 5; i++) cout << a[i]; // 1 1 1 1 1 cout << endl; fi ll_n (a + 2, 2, 0); for (i = 0; i < 5; i++) cout << a[i]; // 1 1 0 0 1 cout << endl; return 0; } Мұнда біздер тізімдер үшін
fi ll (a, a + 5, 1); сияқты өрнекті қолдана
алмайтынымызға назар аударыңыз, өйткені тізім итераторлары үшін қосу опе-
рациясы анықталмаған. Егер толтырылатын тізбек соңына тағайындалатын
итератор белгісіз болса, алгоритмнің екінші формасын қолдануға болады.
generate, ge nerate_n generate алгоритмі барлық элементтерді операция нəтижесіне алмасты-
руды орындайды. Осы арқылы контейнерді бірдей мəндермен емес, үшінші
параметр арқылы берілген
функция арқылы немесе
gen функционалдық
объект көмегімен есептелген мəндермен толтыруға мүмкіндік аламыз.