- 论坛徽章:
- 0
|
代码如下,实现的功能是接收多个字符串,并按照字符串的长度进行排序,然后输出.
#include<iostream>
#include<string>
#include<cstring>
#include<vector>
using namespace std;
bool comp(const string &a, const string & b);
int main()
{
int n;
cin>>n;
vector <string> arr;
string s1("");
for(int i=0;i<n;i++)
{
string s;
cin>>s;
arr.push_back(s);
}
sort(arr.begin(),arr.end(),comp);
for(int i=0;i<n;i++)
cout<<arr<<endl;
}
bool comp(const string &a,const string &b)
{
if(a.size()-b.size()<=0)//???????????????????????????????????????
return true;
else
return false;
}
问题在?号出现的那一行,当前不能完成正确排序,但将if的条件变为a.size()<=b.size()就可以完成正确的排序.觉得运算符优先级并没有错,对a.size()-b.size()加了括号后也还是不行.百惑不解,希望得到大家的帮助. |
|