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 valuefind searches for an element equal to valueYou 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 | ||
| - InputItmust meet the requirements ofInputIterator. | ||
[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) | |


