przejście do zawartości
zpr c++ quick reference
Narzędzia użytkownika
Zarejestruj się!
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Zarejestruj się!
Ostatnie zmiany
Menadżer multimediów
Indeks
Ślad:
•
hash_set
fill_fill_n
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Algorytmy fill() i fill_n() ====== Algorytmy fill() i fill_n() umożliwiają zastąpienie wybranej liczny elementów z kolekcji. ===== Nagłówek ===== <code cpp> #include<algorithm> </code> ===== Definicja fill() ===== <code cpp> template < class ForwardIterator, class T > void fill ( ForwardIterator first, ForwardIterator last, const T& value ) { while (first != last) *first++ = value; } </code> ===== 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() ===== <code cpp> template < class OutputIterator, class Size, class T > void fill_n ( OutputIterator first, Size n, const T& value ) { for (; n>0; --n) *first++ = value; } </code> ===== 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 ===== <code cpp> #include <algorithm> #include <vector> #include <string> #include <iostream> 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<<status<<endl; } }; </code> Przykład pokazuje wykorzystanie obu algorytmów w połączeniu z stworzoną przez nas klasa i wektorem <code cpp> int main() { //Stworzenie wektora z towarami; vector<Towar> 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: "<<endl; for(unsigned int i=0;i<=towary.size()-1;i++) towary[i].wypisz(); cout<<endl; //Użycie algorytmu fill do zamiany towarów na przecenione oprócz dwóch ostatnich fill(towary.begin(),towary.end()-2,przeceniony); cout<<"Lista towarow po zastosowaniu algorytmu fill() : "<<endl; for(unsigned int i=0;i<=towary.size()-1;i++) towary[i].wypisz(); cout<<endl; // Użycie algorytmu fill_n do zamiany statusu przech pierwszych towarów na zamowione fill_n(towary.begin(),3,zamowiony); cout<<"Lista towarow po zastosowaniu algorytmu fill_n(): "<<endl; for(unsigned int i=0;i<=towary.size()-1;i++) towary[i].wypisz(); cout<<endl; } </code>
fill_fill_n.1240945451.txt.gz
· ostatnio zmienione: 2009/04/28 21:04 przez
mroman
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Do góry