递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 2012|回复: 5
打印 上一主题 下一主题

[视窗] c++要如何表达回调函数的?例std::sort第三个参数

[复制链接]

50

主题

548

帖子

2327

积分

金牌会员

Rank: 6Rank: 6

积分
2327
跳转到指定楼层
楼主
发表于 2023-12-1 00:42:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

c++要如何表达回调函数的?例如std::sort第三个参数改为利用子程序指针把两个要对比的值,传入要回调函数中去?!

<火山程序 类型 = "通常" 版本 = 1 />

方法 _A码文本数组排序 <静态>
参数 A码文本数组 <类型 = 变整数>
参数 数组成员个数 <类型 = 整数>
参数 从小到大排序 <类型 = 逻辑型 注释 = "为真表示从小到大进行排序,为假表示从大到小进行排序." @默认值 = 真>
参数 回调函数 <类型 = 变整数>
{
    @ INT_P*  变整数数组指针 = (INT_P*)@<A码文本数组>;
    @ if (@<从小到大排序>)
    @     std::sort(变整数数组指针, 变整数数组指针 + @<数组成员个数>, [](INT_P  lhs, INT_P  rhs) { return strcmp((const char *)lhs, (const char *)rhs) < 0; });
    @ else
    @     std::sort(变整数数组指针, 变整数数组指针 + @<数组成员个数>, [](INT_P  lhs, INT_P  rhs) { return strcmp((const char *)lhs, (const char *)rhs) > 0; });
}


回复

使用道具 举报

26

主题

1812

帖子

6625

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6625
沙发
发表于 2023-12-1 09:14:49 | 只看该作者
不是一定要用匿名函数的

<火山程序 类型 = "通常" 版本 = 1 />

方法 _A码文本数组排序 <静态>
参数 A码文本数组 <类型 = 变整数>
参数 数组成员个数 <类型 = 整数>
参数 回调函数 <类型 = 变整数>
{
    @ INT_P* 变整数数组指针 = (INT_P*)@<A码文本数组>;
    @ std::sort(变整数数组指针, 变整数数组指针 + @<数组成员个数>, reinterpret_cast<bool(WINAPI*)(INT_P, INT_P)>(@<回调函数>));
}

方法 比较函数 <静态 类型 = 逻辑型 注释 = "返回参数1小于参数2是降序排序" 注释 = "返回参数1大于参数2是升序排序">
参数 参数1 <类型 = 变整数>
参数 参数2 <类型 = 变整数>
{
    返回 (参数1 < 参数2)
}

评分

参与人数 1金钱 +5 收起 理由
呵呵仙8 + 5 感谢大神帮忙解答!会c++就是爽!学C++还真是.

查看全部评分

回复

使用道具 举报

50

主题

548

帖子

2327

积分

金牌会员

Rank: 6Rank: 6

积分
2327
板凳
 楼主| 发表于 2023-12-1 12:32:14 | 只看该作者
感谢大神帮忙解答!会c++就是爽!学C++还真是太难了.头都大!!
回复

使用道具 举报

17

主题

324

帖子

2790

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2790
地板
发表于 2023-12-1 12:34:25 来自手机 | 只看该作者
其实火山这么快,自己写个排序速度也是非常快的
回复

使用道具 举报

17

主题

324

帖子

2790

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2790
5#
发表于 2023-12-1 12:34:25 来自手机 | 只看该作者
其实火山这么快,自己写个排序速度也是非常快的
回复

使用道具 举报

17

主题

324

帖子

2790

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2790
6#
发表于 2023-12-1 12:34:25 来自手机 | 只看该作者
其实火山这么快,自己写个排序速度也是非常快的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-9-27 23:39 , Processed in 0.096890 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表