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, InputIt2 first2 ); |
(1) | |
template< class InputIt1, class InputIt2, class BinaryPredicate > bool equal( InputIt1 first1, InputIt1 last1, InputIt2 first2, BinaryPredicate p ); |
(2) | |
true si los elementos son los mismos en dos gamas: una de ellas definida por [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 .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.You can help to correct and verify the translation. Click here for instructions.
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:
Mientras que la signatura no necesita tener |
| Requisitos de tipo | ||
-InputIt1, InputIt2 debe reunir los requerimientos de InputIterator.
| ||
Valor de retorno
true si los elementos en los dos intervalos son igualestrue if the elements in the two ranges are equalYou can help to correct and verify the translation. Click here for instructions.
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.
Complejidad
last1 - first1 aplicaciones del predicadolast1 - first1 applications of the predicateYou can help to correct and verify the translation. Click here for instructions.
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;
}
|
Ejemplo
equal() para probar si una cadena es un palíndromo
equal() to test if a string is a palindrome
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) |