std::equal — cppreference.com
De cppreference.com
<metanoindex/>
<tbody> </tbody>
| Déclaré dans l'en-tête <algorithm> |
||
|
|
(1) | |
|
|
(2) | |
Retours true si les éléments sont les mêmes dans les deux gammes: l'une définie par [first1, last1) et un autre à partir de first2. La première version de la fonction utilise operator== de comparer les éléments, la seconde utilise le prédicat binaire donné 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.
Paramètres
| first1, last1 | - | la première plage des éléments de comparaison Original: the first range of the elements to compare The text has been machine-translated via Google Translate. |
| first2 | - | au début de la seconde plage des éléments de comparaison 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.
| ||
Retourne la valeur
true si les éléments dans les deux gammes sont égaux
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.
Notes
std::equal peut pas être utilisé pour comparer les intervalles formés par les itérateurs de std::unordered_set, std::unordered_multiset, std::unordered_map, ou std::unordered_multimap parce que l'ordre dans lequel les éléments sont stockés dans les récipients peuvent être différents, même si les deux récipients stocker les mêmes éléments .
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.
Complexité
Tout au plus last1 - first1 applications du prédicat
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.
Mise en œuvre possible
| 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; } |
Exemple
Le code suivant utilise equal() pour tester si une chaîne est un palindrome
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"); }
Résultat :
"radar" is a palindrome "hello" is not palindrome
(C++11) |
trouve le premier élément répondant à des critères spécifiques Original: finds the first element satisfying specific criteria The text has been machine-translated via Google Translate. (fonction générique) [edit] |
renvoie vrai si une plage est lexicographiquement inférieur à un autre Original: returns true if one range is lexicographically less than another The text has been machine-translated via Google Translate. (fonction générique) [edit] | |
trouve la première position dans laquelle deux plages différentes Original: finds the first position where two ranges differ The text has been machine-translated via Google Translate. (fonction générique) [edit] | |
recherches pour une série d'éléments Original: searches for a range of elements The text has been machine-translated via Google Translate. (fonction générique) [edit] | |