首页 > 编程语言 > 详细

C++使用谓词函数

时间:2020-04-05 01:44:34      阅读:75      评论:0      收藏:0      [点我收藏+]

源码示例:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

class IsEven
{
public:
  bool operator()(int x)
  {
    return x % 2 == 0;
  }
};

class LessThan
{
public:
  bool operator()(int a, int b)
  {
    return a < b;
  }
};

int main()
{
  int arr[] {12,25,36,8,11,15,89,32,71};
  vector<int> vec{12,25,36,8,11,15,89,32,71};

  cout<<"Original form of both array and vector:\n";
  for(int e:arr)
  {
    cout<<e<<" ";
  }

  //sort the array
  sort(begin(arr), end(arr),LessThan());

  //print the sorted array
  cout<<"\nHere is the aorted array:\n";
  for(int e:arr)
  {
    cout<<e<<" ";
  }

  //Call remove_if for even values
  auto start_removed = remove_if(begin(vec), end(vec), IsEven());
  cout<<"\nHere is the vector after call to remove_if:\n";
  for(int e:vec)
  {
    cout<<e<<" ";
  }

  //Erase the remove_if‘d elements
  vec.erase(start_removed, end(vec));
  cout<<"\nHere is the vector after call to erase:\n";
  for(int e:vec)
  {
    cout<<e<<" ";
  }
  cout<<endl;

  return 0;

}

 

结果展示:

技术分享图片

 

C++使用谓词函数

原文:https://www.cnblogs.com/ruigelwang/p/12635341.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!