C++ STL 否定谓词 not1() not2()

作用

not1是构造一个与谓词结果相反的一元函数对象。
not2是构造一个与谓词结果相反的二元函数对象。

头文件

#include

not1 例子

#include 
#include 
#include 

int main(int argc, char **argv) 
{  
    std::vector nums = {5, 3, 4, 9, 1, 7, 6, 2, 8};
    
    std::function less_than_5 = [](int x){ return x <= 5; };
    
    // count numbers of integer that not less and equal than 5
    std::cout << std::count_if(nums.begin(), nums.end(), std::not1(less_than_5)) << "\n";
    
    return 0;
}
4

not2 例子

#include 
#include 
#include 

using namespace std;

int main(int argc, char **argv) 
{  
    std::vector nums = {5, 3, 4, 9, 1, 7, 6, 2, 8};
    
    std::function ascendingOrder = [](int a, int b) { return a
9   8   7   6   5   4   3   2   1   

参考资料

std::not1
https://en.cppreference.com/w/cpp/utility/functional/not1

std::not2
https://en.cppreference.com/w/cpp/utility/functional/not2

你可能感兴趣的:(C++ STL 否定谓词 not1() not2())