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:
•
multimap
search_n
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
===== Algorytm seach_n ==== <code cpp> iterator search_n( iterator start, iterator end, size_t num, const TYPE& val ); iterator search_n( iterator start, iterator end, size_t num, const TYPE& val, BinPred p ); </code> Funkcja search_n() szuka //Pochylenie//num wystapień w zasiegu kontenera [start,end). Jeżeli zostanie znalezione num kopii danego elementu występujących kolejno w sekwencji, funkcja zwraca iterator na pierwszy znaleziony element. W przeciwnym wypadku zwraca iterator na end danej sekwencji. Jeżeli predykat binarny jest zadany, to zostaje użyty do specyficznego porównania elementow. == Użycie standardowe search_n == Znajdź dwa wystąpienia słowa w wektorze. Przykład: <code cpp> vector<string> vecA; vecA.push_back("Zebra"); vecA.push_back("Anakonda"); vecA.push_back("Anakonda"); vecA.push_back("Zyrafa"); //iterator wskazujacy na pierwszy element ze znalezionych w sekwencji vector<string> itResult = search_n(vecA.begin(), vecA.end(), 2, "Anakonda"); </code> == 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.1229119287.txt.gz
· ostatnio zmienione: 2008/12/12 23:01 przez
ltrzaska
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Do góry