sprintf显示错误。有人能告诉我我做错了什么吗?

时间:2015-07-09 05:15:24

标签: algorithm sorting c++11

我认为参数类型是错误的。你也可以检查排序功能是否正常工作?我已经编写了这段代码,通过组合向量A中的整数来实现最大的代码。

string Solution::largestNumber(const vector<int> &A) {
    int  i,n;
    vector<string> B;
    string str;
    for(i=0; i<A.size(); i++)
    {
        n=sprintf(B[i],"%d",A[i]);
    }
    sort(A.begin(), A.end(),[](string lhs,  string rhs){
      //[](const string &lhs, const string &rhs) {
        // reverse the order of comparison to sort in descending order,
        // otherwise we'll get the "big" numbers at the end of the vector
        return rhs+lhs < lhs+rhs;
      });
      for(i=0; i<A.size(); i++)
      {
          str+= to_string(A[i]);
      }
      return str;
}

1 个答案:

答案 0 :(得分:2)

B是std :: string的向量。

B [I]则是std :: string

sprintf需要一个char数组,而不是std :: string。