83 C++ - 谓词

简介: 83 C++ - 谓词

谓词是指普通函数或重载的operator()返回值是bool类型的函数对象(仿函数)。如果operator接受一个参数,那么叫做一元谓词,如果接受两个参数,那么叫做二元谓词,谓词可作为一个判断式。

class GreaterThenFive
{
public:
  bool operator()(int num)
  {
    return num > 5;
  }
};
//一元谓词
void test01()
{
  vector<int> v;
  for (int i = 0; i < 10;i ++)
  {
    v.push_back(i);
  }
   vector<int>::iterator it =  find_if(v.begin(), v.end(), GreaterThenFive());
   if (it == v.end())
   {
     cout << "没有找到" << endl;
   }
   else
   {
     cout << "找到了: " << *it << endl;
   }
}
//二元谓词
class MyCompare
{
public:
  bool operator()(int num1, int num2)
  {
    return num1 > num2;
  }
};
void test02()
{
  vector<int> v;
  v.push_back(10);
  v.push_back(40);
  v.push_back(20);
  v.push_back(90);
  v.push_back(60);
  //默认从小到大
  sort(v.begin(), v.end());
  for (vector<int>::iterator it = v.begin(); it != v.end();it++)
  {
    cout << *it << " ";
  }
  cout << endl;
  cout << "----------------------------" << endl;
  //使用函数对象改变算法策略,排序从大到小
  sort(v.begin(), v.end(),MyCompare());
  for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
  {
    cout << *it << " ";
  }
  cout << endl;
}


目录
相关文章
|
1月前
|
算法 C++
C++一元谓词和二元谓词
C++一元谓词和二元谓词
|
C++
【C++函数对象】STL基础语法学习 | 仿函数&谓词&内建仿函数
重载函数调用操作符的类,其对象常称为函数对象。函数对象使用重载的()时,行为类似函数的调用,所以也叫仿函数。它的本质为一个类,而不是一个函数。
83 0
【C++函数对象】STL基础语法学习 | 仿函数&谓词&内建仿函数
|
4天前
|
设计模式 安全 算法
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
14 0
|
5天前
|
C语言 C++
【C++】string类(常用接口)
【C++】string类(常用接口)
13 1
|
2天前
|
编译器 C++
【C++】继续学习 string类 吧
首先不得不说的是由于历史原因,string的接口多达130多个,简直冗杂… 所以学习过程中,我们只需要选取常用的,好用的来进行使用即可(有种垃圾堆里翻美食的感觉)
7 1
|
2天前
|
算法 安全 程序员
【C++】STL学习之旅——初识STL,认识string类
现在我正式开始学习STL,这让我期待好久了,一想到不用手撕链表,手搓堆栈,心里非常爽
9 0
|
2天前
|
存储 安全 测试技术
【C++】string学习 — 手搓string类项目
C++ 的 string 类是 C++ 标准库中提供的一个用于处理字符串的类。它在 C++ 的历史中扮演了重要的角色,为字符串处理提供了更加方便、高效的方法。
10 0
【C++】string学习 — 手搓string类项目
|
3天前
|
Java C++ Python
【C++从练气到飞升】06---重识类和对象(二)
【C++从练气到飞升】06---重识类和对象(二)
|
3天前
|
编译器 C++
【C++从练气到飞升】06---重识类和对象(一)
【C++从练气到飞升】06---重识类和对象(一)
|
3天前
|
存储 编译器 C语言
【C++从练气到飞升】02---初识类与对象
【C++从练气到飞升】02---初识类与对象