Narzędzia użytkownika

Narzędzia witryny


search_n

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
search_n [2008/12/12 22:57]
ltrzaska
search_n [2008/12/12 23:03]
ltrzaska
Linia 6: Linia 6:
 </​code>​ </​code>​
  
-Funkcja search_n() szuka //Pochylenie//num wystapień w zasiegu kontenera [start,​end).+Funkcja search_n() szuka //num// wystapień w zasiegu kontenera [start,​end).
 Jeżeli zostanie znalezione num kopii danego elementu występujących kolejno ​ Jeżeli zostanie znalezione num kopii danego elementu występujących kolejno ​
 w sekwencji, funkcja zwraca iterator na pierwszy znaleziony element. w sekwencji, funkcja zwraca iterator na pierwszy znaleziony element.
Linia 13: Linia 13:
 porównania elementow. porównania elementow.
  
-== Użycie standardowe == +== Użycie standardowe ​search_n ​== 
-Znajdź dwa wystąpienia słowa w wektorze. ​Przykład:+Znajdź ​np. dwa wystąpienia słowa w kontenerze np. wektorze.
 <code cpp> <code cpp>
 vector<​string>​ vecA; vector<​string>​ vecA;
Linia 25: Linia 25:
 vector<​string>​ itResult = search_n(vecA.begin(),​ vecA.end(), 2, "​Anakonda"​);​ vector<​string>​ itResult = search_n(vecA.begin(),​ vecA.end(), 2, "​Anakonda"​);​
 </​code>​ </​code>​
-===== adjacent_find.cpp ​ =====+ 
 +== Użycie search_n z predykatem binarnym ​== 
 +Chcemy zdefiniować własny sposób porównania wyszukiwanych n elementów. Dla przykładu za równe uznajmy elementy 
 +których ostatnia litera jest taka sama. 
 +<code cpp> 
 +//​deklaracja binarnego predykatu 
 +//zwraca TRUE gdy porownywane stringi maja ostatnia litere ta sama 
 +template<​class T> 
 +struct string_equal_last : public binary_function <T, T, bool> { 
 + bool operator()(const T& x, const T& y) {  
 + if(typeid(T) !typeid(std::​string)) //​zabezpiecz przed uzyciem nie dla stringu 
 +        ​return false; 
 +  
 + string::​const_iterator ix = x.end();  
 + string::​const_iterator iy = y.end(); 
 + if(*--ix == *--iy) return true; 
 + return false;          
 +
 +}; 
 +//​wyszukanie 4 kolejnych elementów które mają taką samą ostatnią literę jaką ma "​Anakonda"​ 
 +  
 +itResult = search_n(vecA.begin(),​ vecA.end(), 4, "​Anakonda",​ string_equal_last<​string>​());​ 
 +</​code>​ 
 + 
 +===== Źródło: ​adjacent_find.cpp ​ =====
 {{:​search_n.ltrzaska.cpp|}} {{:​search_n.ltrzaska.cpp|}}
search_n.txt · ostatnio zmienione: 2008/12/12 23:03 przez ltrzaska