Różnice między wybraną wersją a wersją aktualną.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
mismatch [2009/03/28 15:17] mkrotewicz |
mismatch [2009/04/28 14:26] (aktualna) mkrotewicz |
||
|---|---|---|---|
| Linia 12: | Linia 12: | ||
| template <class IteratorWejsciowy1, class IteratorWejsciowy2> | template <class IteratorWejsciowy1, class IteratorWejsciowy2> | ||
| pair<IteratorWejsciwoy1, IteratorWejsciowy2> | pair<IteratorWejsciwoy1, IteratorWejsciowy2> | ||
| - | mismatch(IteratorWejsciowy1 pierwszy1, IteratorWejsciowy2 ostatni1, IteratorWejsciowy2 pierwszy2); | + | mismatch(IteratorWejsciowy1 pierwszy1, IteratorWejsciowy2 ostatni1, |
| + | IteratorWejsciowy2 pierwszy2); | ||
| template <class IteratorWejsciowy1, class IteratorWejsciowy2, class PredykatDwuargumentowy> | template <class IteratorWejsciowy1, class IteratorWejsciowy2, class PredykatDwuargumentowy> | ||
| pair<IteratorWejsciwoy1, IteratorWejsciowy2> | pair<IteratorWejsciwoy1, IteratorWejsciowy2> | ||
| - | mismatch(IteratorWejsciowy1 pierwszy1, IteratorWejsciowy2 ostatni1, IteratorWejsciowy2 pierwszy2, PredykatDwuargumentowy pred_dwuargumentowy); | + | mismatch(IteratorWejsciowy1 pierwszy1, IteratorWejsciowy2 ostatni1, IteratorWejsciowy2 pierwszy2, |
| + | PredykatDwuargumentowy pred_dwuargumentowy); | ||
| </code> | </code> | ||
| **__Parametry algorytmu__** | **__Parametry algorytmu__** | ||
| - | * **pierwszy1, ostatni1** - iteratory wskazujące na zakres danych wejściowych pierwszych. Przetwarzaniu podlegają elementy z zakresu [pierwszy1, ostatni1), co oznacza, że element wskazywany przez last1 nie zostanie przetworzony | + | * **pierwszy1, ostatni1** - iteratory wskazujące na zakres danych wejściowych pierwszych. Przetwarzaniu podlegają elementy z zakresu [pierwszy1, ostatni1) |
| * **pierwszy2** - iterator wskazujący na pozycje danych wejściowych drugich. Koniec tego zakresu jest wyliczany na podstawie długości zakresu [pierwszy1, ostatni1). Należy pamiętać aby za elementem peirwszy2 istniało jeszcze co najmniej tyle elementów, ile jest pomiędzy pierwszy1 i ostatni1 | * **pierwszy2** - iterator wskazujący na pozycje danych wejściowych drugich. Koniec tego zakresu jest wyliczany na podstawie długości zakresu [pierwszy1, ostatni1). Należy pamiętać aby za elementem peirwszy2 istniało jeszcze co najmniej tyle elementów, ile jest pomiędzy pierwszy1 i ostatni1 | ||
| * **ped_dwuargumentowy** - predykat do spełnienia | * **ped_dwuargumentowy** - predykat do spełnienia | ||
| + | |||
| + | |||
| + | W przypadku, gdy nie zostaną znalezione elementy, które do siebie nie pasują, wartością zwracaną jest **pair<ostatni1, pierwszy2 + (ostatni1 - pierwszy1)>**. | ||
| + | |||
| __ | __ | ||
| - | **Przykład użycia algorytmu mismatch z bez predykatu.**__ | + | **Przykład użycia algorytmu mismatch bez predykatu.**__ |
| <code cpp> | <code cpp> | ||
| vector <int> wektor1; | vector <int> wektor1; | ||
| Linia 51: | Linia 57: | ||
| class rowne_parzyste{ | class rowne_parzyste{ | ||
| public: | public: | ||
| - | bool operator ()(int ciag1, int ciag2){ //peiwrszy predytkt | + | bool operator ()(int ciag1, int ciag2){ //pierwszy predytkt |
| //czy obie wartości są rowne i parzyste | //czy obie wartości są rowne i parzyste | ||
| return ( ciag1 == ciag2 || ciag1%2 ==0) ? true : false; | return ( ciag1 == ciag2 || ciag1%2 ==0) ? true : false; | ||
| Linia 87: | Linia 93: | ||
| } | } | ||
| </code> | </code> | ||
| + | |||
| ===== Przykład programu wykorzystujący algorytm mismatch ===== | ===== Przykład programu wykorzystujący algorytm mismatch ===== | ||
| - | {{:mismatch.cpp|}} | + | {{mismatch.cpp}} |
| //[[mkrotewicz@gmail.com|Michał Krotewicz 6SST]]// | //[[mkrotewicz@gmail.com|Michał Krotewicz 6SST]]// | ||