less_equal Yapısı
Bağımsız değişkenlerinde küçük veya eşittir işlemini (operator<=
) gerçekleştiren ikili koşul.
Sözdizimi
template <class Type = void>
struct less_equal : public binary_function <Type, Type, bool>
{
bool operator()(const Type& Left, const Type& Right) const;
};
// specialized transparent functor for operator<=
template <>
struct less_equal<void>
{
template <class T, class U>
auto operator()(T&& Left, U&& Right) const
-> decltype(std::forward<T>(Left) <= std::forward<U>(Right));
};
Parametreler
Tür, T, U
Belirtilen veya çıkarsanan türlerin işlenenlerini alan bir destekleyen herhangi bir operator<=
tür.
Left
Küçüktür veya eşittir işleminin sol işleneni. Belirtilmemiş şablon, Tür türünde bir lvalue başvuru bağımsız değişkenini alır. Özelleştirilmiş şablon, T türünde lvalue ve rvalue başvuru bağımsız değişkenlerinin mükemmel bir şekilde iletilmesine neden olur.
Right
Küçüktür veya eşittir işleminin sağ işleneni. Belirtilmemiş şablon, Tür türünde bir lvalue başvuru bağımsız değişkenini alır. Özelleştirilmiş şablon, çıkarılmıştır türü U olan lvalue ve rvalue başvuru bağımsız değişkenlerinin mükemmel iletilmesine yöneliktir.
İade Değeri
sonucu.Left <= Right
Özelleştirilmiş şablon, tarafından operator<=
döndürülen türe sahip olan sonucun mükemmel iletilmesine sahiptir.
Açıklamalar
İkili koşulless_equal
<>Type
, türdeki öğe değerleri kümesinin katı bir zayıf sıralamasını denklik sınıflarına sağlar; ancak bu tür bu kadar sıralı olmak için standart matematiksel gereksinimleri karşılıyorsa. Herhangi bir işaretçi türü için uzmanlıklar, benzersiz değerlerin tüm öğelerinin birbirine göre sıralanması için öğelerin toplam sıralamasını verir.
Örnek
// 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;
}
Original vector v1 = (31247 37154 48755 15251 6205 2836 2836 2836)
Sorted vector v1 = (2836 2836 2836 6205 15251 31247 37154 48755)
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin