Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Templat kelas yang menyediakan fungsi anggota yang meniadakan nilai pengembalian fungsi unary yang ditentukan. Tidak digunakan lagi di C++17 demi not_fn.
Sintaks
template <class Predicate>
class unary_negate
: public unaryFunction<typename Predicate::argument_type, bool>
{
explicit unary_negate(const Predicate& Func);
bool operator()(const typename Predicate::argument_type& left) const;
};
Parameter
Func
Fungsi unary yang akan dinegasikan.
left
Operan fungsi unary yang akan dinegasikan.
Tampilkan Nilai
Negasi fungsi unary.
Keterangan
Templat kelas menyimpan salinan objek fungsi unary _Func. Ini mendefinisikan fungsi operator()
anggotanya sebagai mengembalikan !_Func(left)
.
Konstruktor unary_negate
jarang digunakan secara langsung. Fungsi pembantu not1 menyediakan cara yang lebih mudah untuk mendeklarasikan dan menggunakan predikat adaptor unary_negator .
Contoh
// functional_unary_negate.cpp
// compile with: /EHsc
#include <vector>
#include <functional>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
vector<int> v1;
vector<int>::iterator Iter;
int i;
for (i = 0; i <= 7; i++)
{
v1.push_back(5 * i);
}
cout << "The vector v1 = ( ";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << *Iter << " ";
cout << ")" << endl;
vector<int>::iterator::difference_type result1;
// Count the elements greater than 10
result1 = count_if(v1.begin(), v1.end(), bind2nd(greater<int>(), 10));
cout << "The number of elements in v1 greater than 10 is: "
<< result1 << "." << endl;
vector<int>::iterator::difference_type result2;
// Use the negator to count the elements less than or equal to 10
result2 = count_if(v1.begin(), v1.end(),
unary_negate<binder2nd <greater<int> > >(bind2nd(greater<int>(),10)));
// The following helper function not1 also works for the above line
// not1(bind2nd(greater<int>(), 10)));
cout << "The number of elements in v1 not greater than 10 is: "
<< result2 << "." << endl;
}
The vector v1 = ( 0 5 10 15 20 25 30 35 )
The number of elements in v1 greater than 10 is: 5.
The number of elements in v1 not greater than 10 is: 3.