sort函数写在类内和类外的区别

    xiaoxiao2021-03-25  87

    当cmp函数写在类外时:

    [cpp]  view plain  copy bool comp(Interval a, Interval b) // 注意comp函数可以为static bool或者bool,返回值为bool类型。a.start<b.start为升序   {       return a.start < b.start;   }   class Solution {   public:       void merge(vector<Interval>& intervals) {           sort(intervals.begin(), intervals.end(), comp);       }   };  

    写在类内时,要加上static,lexicographical_compare 最后要求的是一个普通函数指针,而不是成员函数指针,所以要加static

    class Solution { public: static bool cmp(const pair<int, int>&p1, const pair<int, int>&p2){//要加上Static return p1.first > p2.first; } vector<string> findRelativeRanks(vector<int>& nums) { vector<string>v(nums.size(), ""); vector< pair<int, int> >rank; string medal[3] = { "Gold Medal", "Silver Medal", "Bronze Medal" }; for (unsigned int i = 0; i < nums.size(); i++){ rank.push_back(make_pair(nums[i], i)); } sort(rank.begin(), rank.end(), cmp); for (unsigned i = 0; i < nums.size(); i++){ if (i < 3)v[rank[i].second] = medal[i]; else v[rank[i].second] = to_string(i + 1); } return v; } }; http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare

    转载请注明原文地址: https://ju.6miu.com/read-18086.html

    最新回复(0)