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
функционалдық
объект көмегімен есептелген мəндермен толтыруға мүмкіндік аламыз.
|