less Struct
Un attribut binaire qui teste si une valeur d'un type spécifié est inférieure à une autre valeur de ce type.
template<class Type>
struct less : 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 _Left < _Right; false si >= _Rightd' _Left .
Notes
L'attribut binaire less<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.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <functional>
#include <iostream>
struct MyStruct {
MyStruct(int i) : m_i(i){}
bool operator < (const MyStruct & rhs) const {
return m_i < rhs.m_i;
}
int m_i;
};
int main() {
using namespace std;
vector <MyStruct> v1;
vector <MyStruct>::iterator Iter1;
vector <MyStruct>::reverse_iterator rIter1;
int i;
for ( i = 0 ; i < 7 ; i++ )
v1.push_back( MyStruct(rand()));
cout << "Original vector v1 = ( " ;
for ( Iter1 = v1.begin() ; Iter1 != v1.end() ; Iter1++ )
cout << Iter1->m_i << " ";
cout << ")" << endl;
// To sort in ascending order,
sort( v1.begin( ), v1.end( ), less<MyStruct>());
cout << "Sorted vector v1 = ( " ;
for ( Iter1 = v1.begin() ; Iter1 != v1.end() ; Iter1++ )
cout << Iter1->m_i << " ";
cout << ")" << endl;
}
Sortie
Original vector v1 = ( 41 18467 6334 26500 19169 15724 11478 )
Sorted vector v1 = ( 41 6334 11478 15724 18467 19169 26500 )
Configuration requise
en-tête : <functional>
l'espace de noms : DST