Narzędzia użytkownika

Narzędzia witryny


remove_remove_if

To jest stara wersja strony!


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_if() – usuwa z określonego zakresu elementy, dla których dany predykat jest prawdziwy. Zwraca iterator do ostatniego z pozostałych elementów.

Nagłówek dla algorytmów remove i remove_if

 #include<algorithm> 

Opis algorytmu remove

Definicja algorytmu remove

template < class ForwardIterator, class T >
  ForwardIterator remove ( ForwardIterator first, ForwardIterator last, const T& value ){
  		ForwardIterator result = first;
  		for ( ; first != last; ++first)
    			if (!(*first == value)) *result++ = *first;
  		return result;
  }

Parametry algorytmu remove

  • first - iterator identyfikujący początek zakresu elementów
  • last - interator identyfikujący koniec zakresu elementów
  • value - wartość, która ma zostać logicznie usunięta

Wartość zwracana algorytmu remove

Iterator do pierwszego elementu za końcem przedziału zawierającego wszystkie „nieusunięte” elementy.

Jak algorytm NIE działa

Algorymt remove niczego fizycznie nie usuwa, dlatego liczebność elementów zawartych w kontenerze nigdy się nie zmienia.

Działanie algorytmu

Algorymt remove dokonuje przemieszczenia elementów w zadanym mu przy wywołaniu zakresie w taki sposób , by wszystkie te elementy, które nie podlegają „usunięciu”, znalazły się na początku przetwarzanego zakresu i to w takiej samej względnej kolejności. 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_remove_if.1240943011.txt.gz · ostatnio zmienione: 2009/04/28 20:23 przez piotrek