std::equal
![]() |
Esta página se ha traducido por ordenador/computador/computadora de la versión en inglés de la Wiki usando Google Translate.
La traducción puede contener errores y palabras aparatosas/incorrectas. Planea sobre el texto para ver la versión original. Puedes ayudar a corregir los errores y mejorar la traducción. Para instrucciones haz clic aquí. |
Definido en el archivo de encabezado <algorithm>
|
||
template< class InputIt1, class InputIt2 > bool equal( InputIt1 first1, InputIt1 last1, |
(1) | |
template< class InputIt1, class InputIt2, class BinaryPredicate > bool equal( InputIt1 first1, InputIt1 last1, |
(2) | |
[first1, last1)
y otro a partir de first2
. La primera versión de la función utiliza operator== para comparar los elementos, el segundo utiliza el predicado binario dado p
.[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
.You can help to correct and verify the translation. Click here for instructions.
Contenido |
[editar] Parámetros
first1, last1 | - | el primer rango de los elementos para comparar
Original: the first range of the elements to compare The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
first2 | - | a partir de la segunda gama de los elementos para comparar
Original: beginning of the second range of the elements to compare The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
p | - | Predicado binario que devuelve true si los elementos deben tratarse como iguales. La signatura de la función predicado deberá ser equivalente a la siguiente: bool pred(const Tipo1 &a, const Tipo2 &b); Mientras que la signatura no necesita tener const &, la función no debe modificar los objetos que se le han pasado y debe ser capaz de aceptar todos los valores de tipo (posiblemente const) |
Requisitos de tipo | ||
-InputIt1, InputIt2 debe reunir los requerimientos de InputIterator .
|
[editar] Valor de retorno
You can help to correct and verify the translation. Click here for instructions.
[editar] Notas
std::equal
no puede ser utilizado para comparar los intervalos formados por los iteradores de std::unordered_set, std::unordered_multiset, std::unordered_map, o std::unordered_multimap porque el orden en el que los elementos se almacenan en los contenedores puede ser diferente incluso si los dos recipientes almacenar los mismos elementos . 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. You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Complejidad
last1
- first1
aplicaciones del predicadolast1
- first1
applications of the predicateYou can help to correct and verify the translation. Click here for instructions.
[editar] Posible implementación
Primera versión |
---|
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; } |
Segunda versión |
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; } |
[editar] Ejemplo
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"); }
Salida:
"radar" is a palindrome "hello" is not palindrome
(C++11) |
Encuentra el primer elemento que satisfaga un criterio específico. (plantilla de función) |
Devuelve true si un rango es lexicográficamente menor que otro. (plantilla de función) | |
Encuentra la primera posición donde dos rangos difieren. (plantilla de función) | |
Busca una subsecuencia de elementos. (plantilla de función) |