int转string的快速方法!cmp位置总结

int转string方法总结与比较

1.    法一:itoa函数(Windows)
  缺点:非C/C++标准,可移植性不好
2.    法二:std::to_string()
  优点:快!
3.    法三:借助stringstream
  缺点:慢
4.    法四:C库函数sprintf()
  优点:可以转换各种进制的数
  缺点:需要先分配足够的char数组

cmp函数的定义位置总结

  1.定义在class内部,使用static函数,具体原因
  2.定义在class外部
  3.lambda表达式:如:

sort(v.begin(), v.end(), [](string a, string b){return a + b > b + a;});

例题

  见leetcode179题.最大数

代码

class Solution {
public:
    string largestNumber(vector<int>& nums) {
        vector<string> v;
        for (int i = 0; i < nums.size(); i ++ ) {
            string temp = to_string(nums[i]);
            v.push_back(temp);
        }
        sort(v.begin(), v.end(), [](string a, string b){return a + b > b + a;});
        string ret;
        for (int i = 0; i < v.size(); i ++ ) {
            ret += v[i];
            if (v[0] == "0") {
                break;
            }
        }
        return ret;
    }
};

总结

  cmp函数实际上就是为sort定义了一种排序规则,比如这道题,按照我们定义的a+b>b+a的规则来排序,及按照字符串连接的大的方式来排序。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页