仿函数

函数对象(仿函数):

重载函数调用操作符

本质是一个类

仿函数可以作为参数传递

谓词

返回值为bool类型的仿函数称为谓词

一元谓词和二元谓词,一元还是二元看的是参数的数量

常用算法

for_each(v.begin(),v.end(),func)最后一位传入函数或仿函数

transform(v.begin(),v.end(),v2.begin(),func);

使用transform前还需要重置容器大小resize(v.size())

搬运时可在func中对搬运的数据进行简单运算

find(v.begin(),v.end(),object)

目标如果是自定义类型,需要重载==

find(v.begin(),v.end(),pred)

目标传入的是谓词

adjacent_find(v.begin(),v.end());

查找相邻相同的元素

binar_search

二分查找,返回值为布尔类型,且查找数组必须为有序序列

count()、count_if()查找个数

内建函数对象greater<int>()大于

random_shuffle随机打乱

srand((unsigned int)time(NULL))

merge合并算法,合并后依然是有序序列,合并前也必须是有序的

reverse、copy、replace、replac_if反转、拷贝算法

accumulate求和算法

fill填充算法

set_intersection取交集,两个原集合必须有序

set_difference取差集,有两种

set_union取并集

 

posted @ 2023-04-16 21:00  该说不唠  阅读(40)  评论(0)    收藏  举报