【发布时间】:2020-04-20 14:10:53
【问题描述】:
bool isShorter(const string &s1,const string &s2){
return s1.size() < s2.size()
}
isShorter在这里的作用是什么,它是如何实现的?
sort(words.begin(),words.end(), isShorter);
【问题讨论】:
-
isShorter是一个比较器 - 它告诉std::sort这对元素中的哪一个在排序顺序中应该在另一个之前。在此示例中,字符串按长度排序,较短的字符串优先。 -
如有疑问,请阅读文档:
std::sort。 -
@IgorTandetnik 但作为参数传递给
sort的函数isShorter没有或不知道任何元素存在,因为它不包含单词。 -
什么意思?它需要其中两个作为参数 - 这就是它需要知道的全部内容。
sort在需要确定一对元素的顺序时调用它。 -
@IgorTandetnik 在
bool isShorter定义中是的,它确实有两个参数,但在sort中没有提供给它的参数。由于它是可调用对象,它是否隐式提供参数?
标签: c++ string algorithm sorting containers