C++ STL: functor

OpenGenerativeUI:让AI模型动态生成交互界面的React框架 在构建AI应用时,如何让大型语言模型(LLM)不仅能理解指令,还能主动引导用户完成复杂交互,是提升产品体验的关键。传统方法需要开发者预先设计所有界面,导致开发效率低下且难以适应AI的动态输出。OpenGenerativeUI(CopilotKit)通过引入一套创新的UI描述协议,将AI的推理状态(Reasoning State)实时转化为前端可渲染的组件,实现了UI作为AI思维状态函数的理念。其核心价值在于彻底解耦了AI逻辑与前端渲染,允许AI模型在对话流中动态声明所需的表单、按钮或选择器等界面元素,从而支 阅读详情

0 前言

最近上C++选修,又看了看STL源码,就整理一下吧。

1 总体印象

accumulate() 相加->其他操作

sort() 重载operator<

将某种操作当成算法的参数

  • 将该操作设计成一个函数,再将这个函数指着当成算法的一个参数(存在问题:函数指针不能满足STL抽象性要求)

  • 将该操作设计成一个仿函数(class),再将该functor产生一个对象,将这个对象作为算法的一个参数

functor class need to overload operator().

greater<int> ig;

ig(4, 6);

greater<int>()(4, 6);//无名对象

分类:一元/二元 算术Arithmetic/关系/逻辑

#include<functional>

2 Apaptable

function adapter

they need to have their own associative types, like five kinds of iterator.

don’t worry about speed, they are complied before running.

2.1 unary_function

all the unary_function need to inherit code as follows:

```
template<class Arg, class Result>
struct unary_function
{
    typedef Arg argument_type;
    typedef Result result_type;
};

template<class T>
struct negate : public unary_function<T, T>
{
    T operator()(const T& x) const
    {
        return -x;
    }
}
```

2.2 binary_function

```
template<class Arg, class Arg2, class Result>
struct binary_function
{
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef Result result_type;
};
template<class T>
struct plus : public binary_function<T, T, T>
{
    T operator()(const T& x, const T& y) const
    {
        return x + y;
    }
}
```

3 Arithmetic Functor

plus / minus / mutillies / divides / modelus / negate

plus<int> plusobj;

int c = plusobj()(2, 3);

//c = 5;

STL仿函数的主要功能是搭配STL算法使用

accumulate(v.begin(), v.end(), plus<int>());

4 Relational functor

大于/小于/大于等于/小于等于/不等于/等于

```C++
template<class Arg, class Arg2, class Result>
struct binary_function
{
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef Result result_type;
};
template<class T>
struct equality : public binary_function<T, T, bool>
{
    bool operator()(const T& x, const T& y) const
    {
        return x == y;
    }
}
```

sort(v.begin(), v.end(), greater<int>());

5 Logical Functor

And / Or / Not

[C/C++标准库]_[初级]_[函数对象functor的使用] Functor 场景: 1. functor其实就是 阅读详情

相关推荐

Protege本体建模实战:从零构建电影知识图谱并导入Neo4j

本体建模是知识图谱构建的基石,通过类、属性、实例和约束系统描述领域知识,为数据提供可复用的语义骨架。OWL作为本体描述语言的标准,配合Protege工具可实现可视化建模,并借助推理机验证逻辑一致性,提升模型可靠性。在工程落地中,本体模型常需导入图数据库如Neo4j,以支持高效的关联查询与业务应用。本文以影视领域为背景,完整演示Protege中定义类层级、创建对象/数据属性、填充实例,以及导出OWL文件并通过Python脚本转换为Neo4j节点与关系的全过程,同时梳理命名空间、匿名节点、编码等易踩坑点,帮助读

weixin_29047545的博客 281

stl中的仿函数functor的应用

在stl的泛型算法中,functor应用甚多。 template struct plus { T operator ()(const T& x, const T& y) { return x + y; } }; template struct minus { T operator ()(const T& x, const T&

wangwenwen的专栏 975

从农田到城市:如何利用NDVI和缨帽变换提升遥感图像分类精度?

本文深入探讨了如何利用NDVI(归一化差值植被指数)和缨帽变换(Tasseled Cap Transformation)两大关键技术,有效提升从农田到城市等复杂场景的遥感图像分类精度。文章通过剖析地物光谱特征,对比了原始波段与衍生特征的优劣,并提供了在ENVI、ArcGIS及Python环境中的具体操作指南与实战策略,旨在帮助从业者构建更鲁棒的特征工程流程,从而解决地物混淆、边界模糊等常见分类难题。

redis7keeper的博客 867

STL之仿函数实现详解

1、何为仿函数 仿函数的主要功能是为了搭配STL算法使用,单独使用仿函数的情况比较少。 仿函数(functors)在C++标准中采用的名称是函数对象(function objects)。仿函数主要用于STL中的算法中,虽然函数指针虽然也可以作为算法的参数,但是函数指针不能满足STL对抽象性的要求,也不能满足软件积木的要求–函数指针无法和STL其他组件搭配,产生更灵活变化。仿函数本质就是类重载了...

一个菜鸟的博客 2万+

海康VM加密狗无法识别常见问题排查

海康VM加密狗无法识别常见问题排查

视觉人机器视觉的博客 2716

自建邮局服务器| 批量邮件群发系统PowerMTA+oem(mumara,mailwizz, interspire)

世界顶级自建邮局服务器PowerMTA+oem(mumara,mailwizz, interspire) PowerMTA4.5(最好用的 群发邮件软件)是用于大批量多ip开发的邮件传递邮寄。可按每小时发送数近百万条电子邮件,发送IP地址和域可以详细配置,加上目前流行前端oem,mumara,mailwizz, interspire等,可定时发送,定时重复发送,实现全自动化 邮件群发 方案。 官网(powermta4.5下载) https://www.sparkpost.com/powermta/ 使用Po

ytrsexpo的博客 6503

C++的STL中accumulate的用法

accumulate定义在#include中,作用有两个,一个是累加求和,另一个是自定义类型数据的处理 1.累加求和 int sum = accumulate(vec.begin() , vec.end() , 42); accumulate带有三个形参:头两个形参指定要累加的元素范围,第三个形参则是累加的初值。 accumulate函数将它的一个内部变量设置为指定的初始值,然后在此初

Ethan的博客 7万+

无人机通信安全渗透测试:从信号拦截到GPS欺骗的完整攻防框架

在物联网和智能设备普及的背景下,无线通信安全成为关键基础设施防护的核心环节。其原理在于,通过软件定义无线电等设备对空中的射频信号进行捕获、分析与模拟,从而评估通信协议在加密、认证和防重放等方面的脆弱性。这项技术的价值在于,它能主动发现并修复系统设计缺陷,避免因信号被拦截或欺骗导致设备被劫持、数据泄露等重大安全事件。其应用场景广泛,涵盖消费电子、工业控制及关键基础设施等领域。本文聚焦于无人机这一典型移动物联网终端,深入探讨如何构建一套针对其通信链路的渗透测试方法论,其中涉及信号拦截、协议逆向等关键技术,旨在为

weixin_34128237的博客 391

C++STL functor

仿函数 Unary_function用来呈现一元函数的参数类型和返回值类型,其定义非常简单: STL规定,每一个Adaptable Unary Function都应该继承此类别 Template <class Arg, class Result> Struct unary_function{ Typedef Arg argument_type; Typedef Result result_type; }; 一旦某个仿函数继承了unary_function,其用户便...

b711183612的专栏 1130

STM32驱动AD2S1210实现旋变解码与角度读取

旋转变压器作为一种耐高温、抗振动的角度传感器,在工业伺服、机器人关节和电动汽车电驱等场景中占据重要地位。其输出信号需要经过专用转换芯片处理才能被MCU高效使用。AD2S1210是一款典型的旋变数字转换器(RDC),内部采用Type II型跟踪环,将模拟SIN/COS信号实时解算为数字角度与速度,降低了处理器负担并提升抗干扰能力。本文基于STM32平台,详细介绍了AD2S1210的硬件接线、SPI通信配置、寄存器初始化流程,以及读取位置数据时的SAMPLE脉冲时序等关键实现。同时总结了常见故障如全FF、角度跳

weixin_34194829的博客 194

Android编译系统——Android.bp语法介绍(十五)

Android.bp 是 Android 构建系统(Android Build System)中的配置文件,用于描述如何编译和打包项目中的模块。它是用 Blueprint 编写的,其语法类似于 JSON,但专为 Android 编译系统设计,提供了更高效、灵活的模块化管理。

小旭的专栏 939

C++ STL 学习 :for_each与仿函数(functor)

C++ STL 学习 :for_each与仿函数(functor)(一)摘自网络作者: zieckey  时间: 2010-07-20 13:38:00先看wikipedia定义:<br />A function object, also called a functor, functional, or functionoid,[1]  is a computer programming construct allowing an object to be invoked or called like it

chinaclock的专栏 8551

微信小程序开发:实现地图导航功能

其中,id用于调用地图组件,latitude和longitude表示地图的中心点坐标,markers表示地图中的标记点,covers表示地图中的覆盖物,polyline表示地图中的折线图,show-location表示是否显示当前定位点,bindregionchange表示移动地图时触发的事件。其中,id表示标记点的唯一标识,latitude和longitude表示标记点的坐标,title表示标记点的名称,iconPath表示标记点的图标路径,width和height表示标记点的宽度和高度。

吃不胖. 8920

C++ STL 学习 :更多仿函数(functor)(二)

By zieckey( All right reserved!) C++ STL 学习 :更多仿函数(functor)(二) C++标准程序库中提供了许多非常有用的预先定义好的的仿函数,了解这些将为我们的开发工作带来便利性和稳健性。 求反值: // TEMPLATE STRUCT negate templateclass _Ty>     struc

Damon_X的博客 612

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C++ STL标准库:仿函数functor与函数对象

文章目录1. 仿函数简介2. 仿函数代码示例3. 一元函数对象 unary_function4. 二元函数对象 binary_function 1. 仿函数简介 仿函数(functor)又称之为函数对象(function object),其实就是 重载了()操作符 的 struct或class,没有什么特别的地方。 格式: struct 结构体类型名 { 返回值类型 operator()(参数列表...) { ... } } 仿函数比函数的优势: 仿函数可有拥有自己的成

超级大洋葱的博客 1287

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C++ STL 学习 :for_each与仿函数(functor)(一)

C++ STL 学习 :for_each与仿函数(functor)(一) By zieckey( All right reserved!) 先看wikipedia定义: A function object, also called a functor, functional, or functionoid,[1]  is a computer programming cons

Damon_X的博客 531

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【C++】:STL标准库之set/multiset (pair & functor)

set/multiset 1.简介 set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。 set不可以直接存取元素。(不可以使用at.(pos)与[]操作符)。 multiset与set的区别:set支持唯一键值...

yuanCruise 900

java 仿函数,C++ STL 学习 :for_each与仿函数(functor)(一)

C++ STL 学习 :for_each与仿函数(functor)(一)By zieckey( All right reserved!)先看wikipedia定义:A function object, also called a functor, functional, or functionoid,[1] is a computer programming construct allowing...

weixin_39673704的博客 125
上一篇: 数据结构复习1:图
下一篇: C++ STL : Traits
fff_421
博客等级 码龄7年 3粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值