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. |
| Elemento definito nell'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, UnaryPredicate p ); |
(2) | |
template< class InputIt, class UnaryPredicate > InputIt find_if_not( InputIt first, InputIt last, UnaryPredicate q ); |
(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.
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:
The signature does not need to have |
| 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:
The signature does not need to have |
| Type requirements | ||
-InputIt must meet the requirements of InputIterator.
| ||
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.
Complessità
last - first applicazioni del predicatolast - first applications of the predicateYou can help to correct and verify the translation. Click here for instructions.
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));
}
|
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
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) | |