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;});
例题
代码
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的规则来排序,及按照字符串连接的大的方式来排序。