std::find, std::find_if, std::find_if_not
![]() | Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate. La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
Defined in header <algorithm> | ||
template<class InputIt, class T > InputIt find( InputIt first, InputIt last, const T& value ); | (1) | |
template<class InputIt, class UnaryPredicate > InputIt find_if( InputIt first, InputIt last, | (2) | |
template<class InputIt, class UnaryPredicate > InputIt find_if_not( InputIt first, InputIt last, | (3) | (dal C++11) |
[first, last)
gamma che soddisfa criteri specifici:[first, last)
that satisfies specific criteria:You can help to correct and verify the translation. Click here for instructions.
find
ricerche di un elemento pari a value
find
searches for an element equal to value
You can help to correct and verify the translation. Click here for instructions.
find_if
cerca un elemento per il quale predicato p
ritorna truefind_if
searches for an element for which predicate p
returns trueYou can help to correct and verify the translation. Click here for instructions.
find_if_not
cerca elemento per il quale predicato q
ritorna falsefind_if_not
searches for element for which predicate q
returns falseYou can help to correct and verify the translation. Click here for instructions.
Indice |
[modifica]Parametri
first, last | - | la gamma di elementi da esaminare Original: the range of elements to examine The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
value | - | valore per confrontare gli elementi Original: value to compare the elements to The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
p | - | unary predicate which returns true per l'elemento richiesto . Original: for the required element The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. The signature of the predicate function should be equivalent to the following: bool pred(const Type &a); The signature does not need to have const&, but the function must not modify the objects passed to it. |
q | - | unary predicate which returns false per l'elemento richiesto . Original: for the required element The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. The signature of the predicate function should be equivalent to the following: bool pred(const Type &a); The signature does not need to have const&, but the function must not modify the objects passed to it. |
Type requirements | ||
-InputIt must meet the requirements of InputIterator . |
[modifica]Valore di ritorno
last
se tale elemento non viene trovato.last
if no such element is found.You can help to correct and verify the translation. Click here for instructions.
[modifica]Complessità
last
- first
applicazioni del predicatolast
- first
applications of the predicateYou can help to correct and verify the translation. Click here for instructions.
[modifica]Possibile implementazione
First version |
---|
template<class InputIt, class T> InputIt find(InputIt first, InputIt last, const T& value){for(; first != last;++first){if(*first == value){return first;}}return last;} |
Second version |
template<class InputIt, class UnaryPredicate> InputIt find_if(InputIt first, InputIt last, UnaryPredicate p){for(; first != last;++first){if(p(*first)){return first;}}return last;} |
Third version |
template<class InputIt, class UnaryPredicate> InputIt find_if_not(InputIt first, InputIt last, UnaryPredicate q){for(; first != last;++first){if(!q(*first)){return first;}}return last;} |
You can help to correct and verify the translation. Click here for instructions.
template<class InputIt, class UnaryPredicate> InputIt find_if_not(InputIt first, InputIt last, UnaryPredicate q){return std::find_if(first, last, std::not1(q));} |
[modifica]Esempio
You can help to correct and verify the translation. Click here for instructions.
#include <iostream>#include <algorithm>#include <vector> int main(){int n1 =3;int n2 =5; std::vector<int> v{0, 1, 2, 3, 4}; auto result1 = std::find(v.begin(), v.end(), n1);auto result2 = std::find(v.begin(), v.end(), n2); if(result1 != v.end()){std::cout<<"v contains: "<< n1 <<'\n';}else{std::cout<<"v does not contain: "<< n1 <<'\n';} if(result2 != v.end()){std::cout<<"v contains: "<< n2 <<'\n';}else{std::cout<<"v does not contain: "<< n2 <<'\n';}}
Output:
v contains: 3 v does not contain: 5
[modifica]Vedi anche
trova due identici (o qualche altra relazione) elementi adiacenti l'uno all'altro Original: finds two identical (or some other relationship) items adjacent to each other The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) | |
trova l'ultima sequenza di elementi di un certo intervallo Original: finds the last sequence of elements in a certain range The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) | |
searches for any one of a set of elements (funzione di modello) | |
trova la prima posizione in cui due intervalli diversi Original: finds the first position where two ranges differ The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) | |
searches for a range of elements (funzione di modello) |