Różnice między wybraną wersją a wersją aktualną.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
remove_remove_if [2009/04/28 20:33] piotrek |
remove_remove_if [2009/04/29 11:37] (aktualna) piotrek |
||
|---|---|---|---|
| Linia 1: | Linia 1: | ||
| ====== Algorytmy remove remove_if ====== | ====== Algorytmy remove remove_if ====== | ||
| - | **remove()** – usuwa z określonego zakresu elementy równe podanej wartości. Zwraca iterator do ostatniego z pozostałych elementów. | + | **remove** – usuwa z określonego zakresu elementy równe podanej wartości. |
| - | **remove_if()** – usuwa z określonego zakresu elementy, dla których dany predykat jest prawdziwy. Zwraca iterator do ostatniego z pozostałych elementów. | + | **remove_if** – usuwa z określonego zakresu elementy, dla których dany predykat jest prawdziwy. |
| ===== Nagłówek dla algorytmów remove i remove_if ===== | ===== Nagłówek dla algorytmów remove i remove_if ===== | ||
| Linia 35: | Linia 35: | ||
| Algorytm zwraca iterator wskazujący pierwszy element za końcem przedziału zawierającego wszystkie „nieusunięte” elementy. Ta wartość jest „nowym logicznym końcem zakresu”. | Algorytm zwraca iterator wskazujący pierwszy element za końcem przedziału zawierającego wszystkie „nieusunięte” elementy. Ta wartość jest „nowym logicznym końcem zakresu”. | ||
| + | {{:remove.jpg|}} | ||
| === Przykład użycia algorytmu remove === | === Przykład użycia algorytmu remove === | ||
| <code cpp> | <code cpp> | ||
| Linia 68: | Linia 69: | ||
| } | } | ||
| //Nowy logiczny koniec bedzie wskazywal wartosc 8 | //Nowy logiczny koniec bedzie wskazywal wartosc 8 | ||
| - | cout << "\nJaka pozycje wskazuje nowy logiczny koniec :" << *NewEnd<< endl; | + | cout << "\nNa jaki element wskazuje NewEnd :" << *NewEnd<< endl; |
| return 0; | return 0; | ||
| } | } | ||
| Linia 99: | Linia 100: | ||
| Algorytm remove_if podobnie jak algorytm remove tak naprawdę dokonuje przemieszczenia elementów w zadanym mu przy wywołaniu zakresie. Logicznie są usuwane elementy tylko te dla których został spełniony określony predykat. | Algorytm remove_if podobnie jak algorytm remove tak naprawdę dokonuje przemieszczenia elementów w zadanym mu przy wywołaniu zakresie. Logicznie są usuwane elementy tylko te dla których został spełniony określony predykat. | ||
| === Przykład użycia algorytmu remove_if === | === Przykład użycia algorytmu remove_if === | ||
| + | <code cpp> | ||
| //Dla algorytmu remove_if zostana usuniete elementy | //Dla algorytmu remove_if zostana usuniete elementy | ||
| //ktore sa mniejsze od 5 (w naszym przypadku 1,2,3,4) | //ktore sa mniejsze od 5 (w naszym przypadku 1,2,3,4) | ||
| Linia 133: | Linia 135: | ||
| } | } | ||
| //Nowy logiczny koniec bedzie wskazywal wartosc 7 | //Nowy logiczny koniec bedzie wskazywal wartosc 7 | ||
| - | cout << "\nJaka pozycje wskazuje nowy logiczny koniec :" << *NewEnd<< endl; | + | cout << "\nJaki element wskazuje NewEnd :" << *NewEnd<< endl; |
| return 0; | return 0; | ||
| } | } | ||
| + | </code> | ||