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]]// |