Różnice między wybraną wersją a wersją aktualną.
|
transform [2008/12/08 02:42] stasiek-j utworzono |
transform [2008/12/08 02:46] (aktualna) stasiek-j |
||
|---|---|---|---|
| Linia 28: | Linia 28: | ||
| ===== Ograniczenia ===== | ===== Ograniczenia ===== | ||
| * Funkcja op powinna być pozbawiona efektów ubocznych. | * Funkcja op powinna być pozbawiona efektów ubocznych. | ||
| - | * Poprawność wykonania nie może zależeć od kolejności wywoływania operacji dla poszczególnych elementów. W szczególności result nie może należeć do zakresu [first1 + 1, last1) lub analogicznego [first2 + 1, first2+ last1-first1). Nic jednak nie stoi na przeszkodzie, aby result był równy first1 lub first2 (wtedy algorytm wykonuję transformację //w miejscu//) | + | * Poprawność wykonania nie może zależeć od kolejności wywoływania operacji dla poszczególnych elementów. W szczególności result nie może należeć do zakresu [first1 + 1, last1) lub analogicznego [first2 + 1, first2+ last1-first1). Nic jednak nie stoi na przeszkodzie, aby result był równy first1 lub first2 (wtedy algorytm wykonuje transformację //w miejscu//) |
| W przypadku potrzeby użycia algorytmu pozbawionego tych ograniczeń należy stosować algorytm [[for_each]] | W przypadku potrzeby użycia algorytmu pozbawionego tych ograniczeń należy stosować algorytm [[for_each]] | ||
| ===== Złożoność ===== | ===== Złożoność ===== | ||
| Liniowa: wywołuje funkcję op i dokonuje przyporządkowania zwracanej przez nią wartości co najwyżej tylokrotnie, ile jest elementów w zakresie [first1, last1) | Liniowa: wywołuje funkcję op i dokonuje przyporządkowania zwracanej przez nią wartości co najwyżej tylokrotnie, ile jest elementów w zakresie [first1, last1) | ||