====== Algorytmy fill() i fill_n() ====== Algorytmy fill() i fill_n() umożliwiają zastąpienie wybranej liczny elementów z kolekcji. ===== Nagłówek ===== #include ===== Definicja fill() ===== template < class ForwardIterator, class T > void fill ( ForwardIterator first, ForwardIterator last, const T& value ) { while (first != last) *first++ = value; } ===== Parametry replace===== * ForwardIterator first - pierwszy element kolekcji który zostanie zastąpiony * ForwardIterator last - element kolekcj który wyzancza koniec zakresu i nie zostanie już zastąpiony * const T& value - wartość na którą zostaną zamienione elemnty z podanego zakresu ===== Definicja fill_n() ===== template < class OutputIterator, class Size, class T > void fill_n ( OutputIterator first, Size n, const T& value ) { for (; n>0; --n) *first++ = value; } ===== Parametry fill_n()===== * ForwardIterator first - pierwszy element który zostanie zamieniony * Size n - ilość zamienonych elemntów zaczynając o delemntu first * const T& value - wartość na którą zostaną zamienione elemnty z podanego zakresu ===== Przykład ===== #include #include #include #include using namespace std; // Prosta klasa służąca do demonstracji class Towar { private: string status; int cena; public: Towar() { status="W sklepie"; cena=100; } Towar(string c,int x) { status=c; cena=x; } void wypisz() { cout< Przykład pokazuje wykorzystanie obu algorytmów w połączeniu z stworzoną przez nas klasa i wektorem int main() { //Stworzenie wektora z towarami; vector towary; //Tworzenie towarów Towar nieprzeceniony; Towar przeceniony("przecenione",50); Towar zamowiony("zamowione",0); //Dodanie towarów nieprzecenionych do wektora for(unsigned int i=0;i<=5;i++) towary.push_back(nieprzeceniony); cout<<"Lista towarow przed zastosowaniem algorytmów: "< Użycie algorytmu fill do zamiany towarów na przecenione oprócz dwóch ostatnich i wyświetlenie wyników fill(towary.begin(),towary.end()-2,przeceniony); cout<<"Lista towarow po zastosowaniu algorytmu fill() : "< Użycie algorytmu fill_n do zamiany statusu przech pierwszych towarów na zamowione i wyświetlenie wyników fill_n(towary.begin(),3,zamowiony); cout<<"Lista towarow po zastosowaniu algorytmu fill_n(): "<