bool static comp (const pair<int, int>& a, const pair<int, int>& b) {
return a.second > b.second;
}
vector<pair<int, int>> vec(map.begin(), map.end());
sort(vec.begin(), vec.end(), comp);
此处bool 后面不加 static就会报错。这是为什么呢?
这是因为sort()变量的原因。
template <class RandomAccessIterator, class Compare>
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
我们可以看到,如果想要调用comp,必须是 Compare A; 然后A.comp。
也就是说需要对象名.comp 才能使用comp。
知道了这一点就很好理解了。static的特点就是:静态成员函数不用加对象名,就能直接访问函数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)