std::find, std::find_if, std::find_if_not
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
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) | (a partir do C++ 11) |
[first, last)
intervalo que satisfaz critérios específicos:[first, last)
that satisfies specific criteria:You can help to correct and verify the translation. Click here for instructions.
find
procura por um elemento igual 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
procura um elemento para o qual predicado p
retornos 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
pesquisas de elemento para o qual predicado q
retornos falsefind_if_not
searches for element for which predicate q
returns falseYou can help to correct and verify the translation. Click here for instructions.
Índice |
[editar]Parâmetros
first, last | - | a gama de elementos para examinar 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 | - | valor a comparar os elementos de 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 para o elemento desejado . 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 para o elemento desejado . 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 . |
[editar]Valor de retorno
last
se nenhum elemento for encontrado.last
if no such element is found.You can help to correct and verify the translation. Click here for instructions.
[editar]Complexidade
last
- first
aplicações do predicadolast
- first
applications of the predicateYou can help to correct and verify the translation. Click here for instructions.
[editar]Possível implementação
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));} |
[editar]Exemplo
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
[editar]Veja também
encontra dois idênticos (ou algum outro relacionamento) itens adjacentes uns aos outros 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. (modelo de função) | |
encontra a última sequência de elementos em um determinado intervalo 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. (modelo de função) | |
searches for any one of a set of elements (modelo de função) | |
encontra a primeira posição em que dois intervalos diferentes 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. (modelo de função) | |
searches for a range of elements (modelo de função) |