std::equal - cppreference.com
De cppreference.com
<metanoindex/>
<tbody> </tbody>
| Definido no cabeçalho <algorithm> |
||
|
|
(1) | |
|
|
(2) | |
Retorna true se os elementos são os mesmos em duas gamas: uma definida por [first1, last1) e outra a partir de first2. A primeira versão da função usa operator== para comparar os elementos, o segundo usa o predicado binário dado p.
Original:
Returns true if the elements are the same in two ranges: one defined by [first1, last1) and another starting at first2. The first version of the function uses operator== to compare the elements, the second uses the given binary predicate p.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Parâmetros
| first1, last1 | - | a primeira gama de elementos para comparar Original: the first range of the elements to compare The text has been machine-translated via Google Translate. |
| first2 | - | no início do segundo intervalo de elementos para comparar Original: beginning of the second range of the elements to compare The text has been machine-translated via Google Translate. |
| p | - | binary predicate which returns true if the elements should be treated as equal.
The signature of the predicate function should be equivalent to the following:
The signature does not need to have |
| Type requirements | ||
-InputIt1, InputIt2 must meet the requirements of InputIterator.
| ||
Valor de retorno
true se os elementos dos dois intervalos são iguais
Original:
true if the elements in the two ranges are equal
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Notas
std::equal não pode ser usado para comparar os intervalos formados pelos iteradores de std::unordered_set, std::unordered_multiset, std::unordered_map, std::unordered_multimap ou porque a ordem em que os elementos são armazenados nos recipientes podem ser diferentes mesmo se os dois recipientes de armazenar os mesmos elementos.
Original:
std::equal may not be used to compare the ranges formed by the iterators from std::unordered_set, std::unordered_multiset, std::unordered_map, or std::unordered_multimap because the order in which the elements are stored in those containers may be different even if the two containers store the same elements.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
{{{1}}}
Original:
{{{2}}}
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Complexidade
No máximo last1 - first1 aplicações do predicado
Original:
At most last1 - first1 applications of the predicate
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Possível implementação
| First version |
|---|
template<class InputIt1, class InputIt2> bool equal(InputIt1 first1, InputIt1 last1, InputIt2 first2) { for (; first1 != last1; ++first1, ++first2) { if (!(*first1 == *first2)) { return false; } } return true; } |
| Second version |
template<class InputIt1, class InputIt2, class BinaryPredicate> bool equal(InputIt1 first1, InputIt1 last1, InputIt2 first2, BinaryPredicate p) { for (; first1 != last1; ++first1, ++first2) { if (!p(*first1, *first2)) { return false; } } return true; } |
Exemplo
O código a seguir usa equal() para testar se uma string é um palíndromo
Original:
The following code uses equal() to test if a string is a palindrome
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
#include <iostream> #include <algorithm> #include <string> void test(const std::string& s) { if(std::equal(s.begin(), s.begin() + s.size()/2, s.rbegin())) { std::cout << "\"" << s << "\" is a palindrome\n"; } else { std::cout << "\"" << s << "\" is not palindrome\n"; } } int main() { test("radar"); test("hello"); }
Saída:
"radar" is a palindrome "hello" is not palindrome
(C++11) |
encontra o primeiro elemento satisfazer critérios específicos Original: finds the first element satisfying specific criteria The text has been machine-translated via Google Translate. (modelo de função) [edit] |
retorna true se um intervalo é lexicograficamente menor do que outro Original: returns true if one range is lexicographically less than another The text has been machine-translated via Google Translate. (modelo de função) [edit] | |
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. (modelo de função) [edit] | |
| searches for a range of elements (modelo de função) [edit] | |