Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
adjacent_find [2008/12/11 19:18] pejotr |
adjacent_find [2008/12/12 18:45] (aktualna) pejotr |
||
---|---|---|---|
Linia 34: | Linia 34: | ||
* last - iterator wskazujący koniec zakresu do przeszukania | * last - iterator wskazujący koniec zakresu do przeszukania | ||
* binary_pred - opcjonalny argument, wskaźnik na funkcję dokonującej porównania | * binary_pred - opcjonalny argument, wskaźnik na funkcję dokonującej porównania | ||
- | |||
===== Przyklady ===== | ===== Przyklady ===== | ||
Linia 43: | Linia 42: | ||
int main() { | int main() { | ||
- | vector<int> v1; | + | vector<int> v1; |
- | for( int i = 0; i < 10; i++ ) { | + | for( int i = 0; i < 10; i++ ) { |
- | v1.push_back(i); | + | v1.push_back(i); |
- | | + | |
- | // zmuszenie do zdublowania wartości 7 i 9 | + | // zmuszenie do zdublowania wartości 7 i 9 |
- | if( i == 7 || i == 9 ) { | + | if( i == 7 || i == 9 ) { |
- | v1.push_back(i); | + | v1.push_back(i); |
- | } | + | } |
- | } | + | } |
- | vector<int>::iterator result; | + | vector<int>::iterator result; |
- | result = adjacent_find( v1.begin(), v1.end() ); | + | result = adjacent_find( v1.begin(), v1.end() ); |
- | + | ||
- | if( result == v1.end() ) { | + | if( result == v1.end() ) { |
- | cout << "Nie znaleziono dwóch identycznych kolejno występujących elemntów" << endl; | + | cout << "Nie znaleziono dwóch identycznych kolejno występujących elemntów" << endl; |
- | } | + | } |
- | else { | + | else { |
- | cout << "Znaleziona dwa identyczne kolejno występujące elementy. Pierwszy element: " << *result << endl; | + | cout << "Znaleziona dwa identyczne kolejno występujące elementy. Pierwszy element: " << *result << endl; |
- | } | + | } |
result = adjacent_find (++result, v1.end()); | result = adjacent_find (++result, v1.end()); | ||
Linia 80: | Linia 79: | ||
<code cpp> | <code cpp> | ||
#include<alghoritm> | #include<alghoritm> | ||
+ | #include<list> | ||
+ | #include<iostream> | ||
// sprawdza czy następny element jest 2 razy większy od obecnego | // sprawdza czy następny element jest 2 razy większy od obecnego | ||
Linia 90: | Linia 91: | ||
int main() { | int main() { | ||
- | list <int> L; | + | std::list<int> L; |
- | list <int>::iterator Iter; | + | std::list <int>::iterator result; |
- | list <int>::iterator result; | + | |
L.push_back( 50 ); | L.push_back( 50 ); | ||
Linia 100: | Linia 100: | ||
L.push_back( 20 ); | L.push_back( 20 ); | ||
- | result = adjacent_find( L.begin( ), L.end( ), twice ); | + | result = std::adjacent_find( L.begin( ), L.end( ), twice ); |
- | if ( result2 == L.end( ) ) { | + | if ( result == L.end( ) ) { |
- | cout << "Nie występuje para kolejnych elementów, w której jeden element jest dwukrotnie większy od drugiego" << endl; | + | std::cout << "Nie występuje para kolejnych elementów, w której jeden element jest dwukrotnie większy od drugiego" << std::endl; |
} | } | ||
else { | else { | ||
- | cout << "Występuje para elementów w których jeden jest 2 razy większy od drugiego" << "\n Wartości tych elementów" << *(result++); | + | std::cout << "Występuje para elementów w której jeden jest 2 razy większy od drugiego" << std::endl << "Wartości tych elementów" << *(result); |
- | cout << " i " << *result << endl; | + | std::cout << " oraz " << *(++result) << std::endl; |
} | } | ||
- | |||
- | |||
- | |||
} | } | ||
</code> | </code> | ||
+ | |||
+ | ===== adjacent_find.cpp ===== | ||
+ | {{:stl_algorytmy:stl_algorytmy:adjacent_find2.cpp|}} | ||