Różnice między wybraną wersją a wersją aktualną.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
copy_copy_n [2009/04/30 04:13] jan_dudziec |
copy_copy_n [2009/04/30 04:24] (aktualna) jan_dudziec |
||
|---|---|---|---|
| Linia 1: | Linia 1: | ||
| ====== Algorytmy copy i copy_n ====== | ====== Algorytmy copy i copy_n ====== | ||
| - | Funkcja copy kopiuje elementy od pierwszego do ostatniego z kontenera pierwszego wstawiając je od elementu result kontenera docelowego. Używa przypisania *result = *first, *(result + 1) = *(first + 1) ... | + | Funkcja **copy** kopiuje elementy od pierwszego do ostatniego z kontenera pierwszego wstawiając je od elementu result kontenera docelowego. Używa przypisania |
| + | <code cpp>*result = *first, *(result + 1) = *(first + 1) ...</code> | ||
| Elementy [first, last) z kontenera wzorcowego zostają skopiowane do elementów [resutl, result + (last-first)) kontenera docelowego. | Elementy [first, last) z kontenera wzorcowego zostają skopiowane do elementów [resutl, result + (last-first)) kontenera docelowego. | ||
| - | Analogicznie działa funkcja copy_n, tylko zamiast końca przedziału last pobiera liczbę elementów do skopiowania - n. | + | Analogicznie działa funkcja **copy_n**, tylko zamiast końca przedziału last pobiera liczbę elementów do skopiowania - n. |
| Elementy [first, last) z kontenera wzorcowego zostają skopiowane do elementów [resutl, result + n) kontenera docelowego. | Elementy [first, last) z kontenera wzorcowego zostają skopiowane do elementów [resutl, result + n) kontenera docelowego. | ||
| Linia 40: | Linia 41: | ||
| ===== Wymagania na parametryzowane typy ===== | ===== Wymagania na parametryzowane typy ===== | ||
| - | * InputIterator | + | * InputIterator - iterator z funkcją pre i postinkrementacji a także wyłuskania wskazywanego elementu do odczytu |
| - | * OutputIterator | + | * OutputIterator - iterator z funkcją pre i postinkrementacji a także nadpisania wskazywanego obiektu operatorem '='. |
| + | * InsertIterator - przykład OutputIterator, który tworzy nowy element w kontenerze gdy zostanie na nim wywołany operator przyrównania. Uzycie tego operatora pozwala kopiować elementy do pustych kontenerów. | ||
| ===== Złożoność ===== | ===== Złożoność ===== | ||
| Linia 47: | Linia 49: | ||
| ===== Przykład użycia ===== | ===== Przykład użycia ===== | ||
| + | Plik cpp do pobrania {{copy-copy_n.cpp}}. | ||
| + | |||
| + | Krótki przykład: | ||
| <code cpp> | <code cpp> | ||
| //wektory: v zawiera el. 0-19, v3 zawiera 10 el. 0 | //wektory: v zawiera el. 0-19, v3 zawiera 10 el. 0 | ||