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 |