C++谓词
谓词是一个可调用的表达式,其返回结果是一个能用作条件的值。
标准库算法所使用的谓词分为两类:一元谓词(unary predicate,意味着它们只接受单一参数)和二元谓词(binary predicate,意味着它们有两个参数)。
接受谓词参数的算法对输入序列中的元素调用谓词。因此,元素类型必须能转换为谓词的参数类型。
接受一个二元谓词参数的 sort 版本用这个谓词代替 < 来比较元素。
此操作必须在输入序列中所有可能的元素值上定义一个一致的序。
bool isShorter(const string &s1, const string &s2){
return s1.size() < s2.size();
}
// 按长度由短到长排序words
sort(words.begin(), words.end(), isShorter);
isShorter 就是一个满足这些要求的函数,因此可以将 isShorter 传递给 sort。这样做会将元素按大小重新排序:
此调用会将words 重排,使得所有长度为3的单词排在长度为 4的单词之前,然后是长度为 5 的单词,依此类推。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步