C++ 的not1與not2
阿新 • • 發佈:2021-02-02
技術標籤:C++
一、介紹
not1是構造一個與謂詞結果相反的一元函式物件。
not2是構造一個與謂詞結果相反的二元函式物件。
二、用法
not1
// not1 example #include <iostream> // std::cout #include <functional> // std::not1 #include <algorithm> // std::count_if struct IsOdd {//是否為奇數 bool operator() (const int& x) const {return x%2==1;} typedef int argument_type; }; int main () { int values[] = {1,2,3,4,5}; int cx = std::count_if (values, values+5, std::not1(IsOdd()));//計算不為奇數的個數 std::cout << "There are " << cx << " elements with even values.\n"; return 0; }
not2
#include <iostream> #include <algorithm> #include <functional> using namespace std; int main() { std::vector<int> nums = { 5, 3, 4, 9, 1, 7, 6, 2, 8 }; //升序 std::function<bool(int, int)> ascendingOrder = [](int a, int b) { return a < b; }; // 排序,不是按升序,而是按降序 std::sort(nums.begin(), nums.end(), std::not2(ascendingOrder)); for (int i : nums) { std::cout << i << " "; } return 0 ; }
參考: