Różnice między wybraną wersją a wersją aktualną.
| Next revision | Previous revision | ||
|
generate_generate_n [2008/12/11 23:06] bfugas utworzono |
generate_generate_n [2008/12/12 20:23] (aktualna) bfugas akapit |
||
|---|---|---|---|
| Linia 1: | Linia 1: | ||
| ===== Szablony generate i generate_n ===== | ===== Szablony generate i generate_n ===== | ||
| Szablony ''generate'' i ''generate_n'' pozwalają przypisać wartości zwracane przez //generator// do elementów tablicy lub kontenera udostępniającego iterator. Są szczególnie przydatne wtedy, gdy kontener chcemy wypełnić zgodnie z jakąś zależnością funkcyjną. Można z nich również korzystać w celu przypisania kolejnym elementom losowych wartości.\\ | Szablony ''generate'' i ''generate_n'' pozwalają przypisać wartości zwracane przez //generator// do elementów tablicy lub kontenera udostępniającego iterator. Są szczególnie przydatne wtedy, gdy kontener chcemy wypełnić zgodnie z jakąś zależnością funkcyjną. Można z nich również korzystać w celu przypisania kolejnym elementom losowych wartości.\\ | ||
| - | Generatorem może być bezargumentowa funkcja lub //obiekt funkcyjny//((//obiekt funkcyjny//, //funktor// - obiekt udostępniający metodę ''operator()'')), zwracająca obiekty takiego samego typu, jak przechowywane w kontenerze. | + | Generatorem może być bezargumentowa funkcja lub //obiekt funkcyjny//((//obiekt funkcyjny//, //funktor// - obiekt udostępniający metodę ''operator()'')), zwracający obiekty takiego samego typu, jak przechowywane w kontenerze. |
| ===== generate ===== | ===== generate ===== | ||
| Linia 67: | Linia 67: | ||
| * otrzymanie takiego iteratora jest niemożliwe. | * otrzymanie takiego iteratora jest niemożliwe. | ||
| - | Przykładowo takiej operacji (patrz {{:stl_algorytmy:generate_n.cpp}}): | + | Przykładowo takiej operacji (patrz {{:stl_algorytmy:generate2.cpp}}): |
| <code cpp> | <code cpp> | ||
| generate_n(ostream_iterator<GeneticAlgorithm::Individual>(os, " "), 10, ga.rig_) | generate_n(ostream_iterator<GeneticAlgorithm::Individual>(os, " "), 10, ga.rig_) | ||
| </code> | </code> | ||
| za pomocą ''generate'' wykonać się nie da. | za pomocą ''generate'' wykonać się nie da. | ||
| + | |||
| + | ===== Długi przykład ===== | ||
| + | //Długi// przykład zastosowania algorytmu dotyczy pewnego szkieletu algorytmu genetycznego, a dokładniej generacji populacji początkowej.\\ | ||
| + | Kolorowy kod programu znajduje się [[generate_kod|tutaj]]. To samo w postaci pliku źródłowego: {{:stl_algorytmy:generate2.cpp}} | ||
| ===== Podsumowanie ===== | ===== Podsumowanie ===== | ||
| Szablony ''generate'' i ''generate_n'' umożliwiają łatwe wypełnianie kolekcji wartościami zwracanymi przez funkcje lub funktory. Są przydatne tam, gdzie wartości początkowe elementów kontenera zależą od stanu generatora. | Szablony ''generate'' i ''generate_n'' umożliwiają łatwe wypełnianie kolekcji wartościami zwracanymi przez funkcje lub funktory. Są przydatne tam, gdzie wartości początkowe elementów kontenera zależą od stanu generatora. | ||