przejście do zawartości
zpr c++ quick reference
Narzędzia użytkownika
Zarejestruj się!
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Zarejestruj się!
Ostatnie zmiany
Menadżer multimediów
Indeks
Ślad:
unique_unique_copy
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Algorytmy unique, unique_copy ====== Algorytmy te znajdują się w bibliotece //algorithm//. === Nagłówek === <code cpp> #include <algorithm> </code> ===== unique ===== <code cpp> template <class ForwardIterator> ForwardIterator unique ( ForwardIterator firstElement, ForwardIterator lastElement ); template <class ForwardIterator, class BinaryPredicate> ForwardIterator unique ( ForwardIterator firstElement, ForwardIterator lastElement, BinaryPredicate comp ); </code> **unique ** to algorytm służący usuwaniu następujących po sobie duplikatów elementów z zakresu [ //firstElement// , //lastElement// ). //firstElement// i //lastElement// są iteratorami wskazującymi na pozycję w kontenerze ( np. lista, wektor ). Algorytm jest realizowany poprzez usuwanie wszystkich elementów identycznych z elementem bezpośrednio poprzedzającym. Porównywanie elementów odbywa się przy wykorzystaniu operatora ==. W przypadku, gdy nie jest zaimplementowany, należy podać jako trzeci argument funkcję, która porównuje elementy. Powinna ona zwracać //true// jeśli elementy są identyczne i //false// w przeciwnym przypadku. Zachowanie algorytmu jest następujące: <code cpp> template <class ForwardIterator> ForwardIterator unique ( ForwardIterator firstElement, ForwardIterator lastElement ) { ForwardIterator result = first; while ( ++first != last ) { if ( !( *result == *first ) ) *(++result)=*first; } return ++result; } </code> ==== Parametry: ==== //firstElement, lastElement// Iteratory wskazujące zakres elementów na którym będzie realizowany algorytm. Zakres ten zawiera wszystkie elementy od firstElement do elementu poprzedzającego lastElement. //comp// Binarny predykat przyjmujący 2 elemety jako argumenty i zwracający true jeśli oba są równe i false w przeciwnym przypadku. Może to być zarówno wskaźnik na funkcję, jak i wskaźnik na obiekt klasy przeładowującej operator(). ==== Wartość zwracana: ==== Iterator wskazujący na nowy koniec sekwencji z zadanego zakresu, która nie zawiera już powtarzających się po sobie elementów. ==== Uwaga: ==== Należy uwzględnić fakt, że algorytm **unique** nie zmienia wielkości kontenera, ani nie zmienia elementów położonych za nowym końcem ( ciągle są dostępne ).
unique_unique_copy.1241042923.txt.gz
· ostatnio zmienione: 2009/04/30 00:08 przez
pgrabowska
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Do góry