C++ sort函数以及stringstream的使用

来源:互联网 发布:centos设置ip地址命令 编辑:程序博客网 时间:2024/06/15 07:33
class Solution {public: vector int2String(const vector& numbers) { vector strnum;stringstream stream; for(unsigned int i=0; i<numbers.size(); ++i) { int value = numbers[i]; stream.str(""); stream << value; strnum.push_back(stream.str()); //此处也可以用 stream>>string_temp } return strnum; } static bool strcomp(const string& a, const string& b){string str1 = a + b; string str2 = b + a; return str1b,则为降序} string PrintMinNumber(vector numbers) {string result; if(numbers.empty()) return result; vector& c_numbers = numbers; vector strnum; strnum = int2String(c_numbers); sort(strnum.begin(), strnum.end(), strcomp);for(unsigned int i=0; i<strnum.size(); ++i) { result += strnum[i]; } return result;}};原本想用C++库函数sort对vector排序,但是一值报错,查了些资料,sort函数第三个参数传入有误在类Solution中,写了一个普通成员比较函数传入sort函数,编译通不过,该参数支持的函数包括全局函数,类静态成员函数,函数对象。普通类成员函数通不过,因此改为static即可;此处需要将int型转为string类型,想到了stringstream类,stringstream可以很方便的进行类型转换,字符串串接,使用同一个stringstream对象时要先继续清空,clear方法清空的是stringstream的状态(比如出错等),应该使用str(“”)方法。
0 0