less_equal Struct
Un attribut binaire qui teste si une valeur d'un type spécifié est inférieure ou égale à une autre valeur de ce type.
template<class Type>
struct less_equal : public binary_function <Type, Type, bool>
{
bool operator()(
const Type& _Left,
const Type& _Right
) const;
};
Paramètres
_Left
l'opérande gauche du type Type dans l'inégalité à tester._Right
L'opérande de droite du type Type dans l'inégalité à tester.
Valeur de retour
true si <= _Rightd' _Left ; false si _Left > _Right.
Notes
L'attribut binaire less_equal<Type> fournit le classement faible strict d'un ensemble de valeurs d'éléments de type Type dans les classes d'équivalence si et seulement si ce Type satisfait aux spécifications mathématiques standard pour être donc ordonné.Les spécialisations pour tout type pointeur référence le classement total des éléments dans la mesure où tous les éléments des valeurs distinctes sont classés par rapport à l'autre.
Exemple
// functional_less_equal.cpp
// compile with: /EHsc
#define _CRT_RAND_S
#include <stdlib.h>
#include <vector>
#include <algorithm>
#include <functional>
#include <cstdlib>
#include <iostream>
int main( )
{
using namespace std;
vector <int> v1;
vector <int>::iterator Iter1;
vector <int>::reverse_iterator rIter1;
unsigned int randomNumber;
int i;
for ( i = 0 ; i < 5 ; i++ )
{
if ( rand_s( &randomNumber ) == 0 )
{
// Convert the random number to be between 1 - 50000
// This is done for readability purposes
randomNumber = ( unsigned int) ((double)randomNumber /
(double) UINT_MAX * 50000) + 1;
v1.push_back( randomNumber );
}
}
for ( i = 0 ; i < 3 ; i++ )
{
v1.push_back( 2836 );
}
cout << "Original vector v1 = ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")" << endl;
// To sort in ascending order,
// use the binary predicate less_equal<int>( )
sort( v1.begin( ), v1.end( ), less_equal<int>( ) );
cout << "Sorted vector v1 = ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")" << endl;
}
Résultat de l'exemple
Original vector v1 = ( 31247 37154 48755 15251 6205 2836 2836 2836 )
Sorted vector v1 = ( 2836 2836 2836 6205 15251 31247 37154 48755 )
Configuration requise
en-tête : <functional>
l'espace de noms : DST