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 | ||
-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) | |