greater_equal Struct
Predikat biner yang melakukan operasi yang lebih besar dari atau sama dengan (operator>=
) pada argumennya.
Sintaks
template <class Type = void>
struct greater_equal : public binary_function <Type, Type, bool>
{
bool operator()(const Type& Left, const Type& Right) const;
};
// specialized transparent functor for operator>=
template <>
struct greater_equal<void>
{
template <class T, class U>
auto operator()(T&& Left, U&& Right) const
-> decltype(std::forward<T>(Left)>= std::forward<U>(Right));
};
Parameter
Jenis, T, U
Jenis apa pun yang mendukung operator>=
yang mengambil operan dari jenis yang ditentukan atau disimpulkan.
Left
Operan kiri dari operasi yang lebih besar dari atau sama dengan. Templat yang tidak dispesialisasi mengambil argumen referensi lvalue jenis jenis. Templat khusus melakukan penerusan sempurna dari argumen referensi lvalue dan rvalue dari tipe T yang disimpulkan.
Kanan
Operan kanan dari operasi yang lebih besar dari atau sama dengan. Templat yang tidak dispesialisasi mengambil argumen referensi lvalue jenis jenis. Templat khusus melakukan penerusan sempurna dari argumen referensi lvalue dan rvalue dari tipe U yang disimpulkan.
Tampilkan Nilai
Hasil dari Left >= Right
. Templat khusus melakukan penerusan hasil yang sempurna, yang memiliki jenis yang dikembalikan oleh operator>=
.
Keterangan
Predikat greater_equal
<>Type
biner menyediakan urutan yang lemah yang ketat dari sekumpulan nilai elemen jenis Jenis ke dalam kelas kesetaraan, jika dan hanya jika jenis ini memenuhi persyaratan matematika standar untuk diurutkan begitu. Spesialisasi untuk jenis pointer apa pun menghasilkan urutan total elemen, di mana semua elemen nilai yang berbeda diurutkan sehubungan satu sama lain.
Contoh
// functional_greater_equal.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <functional>
#include <cstdlib>
#include <iostream>
int main( )
{
using namespace std;
vector <int> v1;
vector <int>::iterator Iter1;
int i;
v1.push_back( 6262 );
v1.push_back( 6262 );
for ( i = 0 ; i < 5 ; i++ )
{
v1.push_back( rand( ) );
}
cout << "Original vector v1 = ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")" << endl;
// To sort in ascending order,
// use default binary predicate less<int>( )
sort( v1.begin( ), v1.end( ) );
cout << "Sorted vector v1 = ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")" << endl;
// To sort in descending order,
// specify binary predicate greater_equal<int>( )
sort( v1.begin( ), v1.end( ), greater_equal<int>( ) );
cout << "Resorted vector v1 = ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")" << endl;
}
Original vector v1 = (6262 6262 41 18467 6334 26500 19169)
Sorted vector v1 = (41 6262 6262 6334 18467 19169 26500)
Resorted vector v1 = (26500 19169 18467 6334 6262 6262 41)