请教想使用sort对一个string型的数组进行排序这么做为什么会出错
请问想使用sort对一个string型的数组进行排序这么做为什么会出错?
功能是想对string数组里面的内容进行不区分大小写的排序,请问这样做为什么SORT函数会出现错误,十分感谢!
------解决方案--------------------
发现一个逻辑错误,请参考
http://en.cppreference.com/w/cpp/algorithm/sort
注意sort()的谓词的函数签名
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string>
using namespace std;
int comp(const string &s1,const string &s2){
string temp1;
string temp2;
transform(s1.begin(),s1.end(),temp1.begin(),::tolower);
transform(s1.begin(),s1.end(),temp2.begin(),::tolower);
return strcmp(temp1.c_str(),temp2.c_str());
}
int main(){
int n;
string s[201];
while(cin>>n)
{
int i;
for(i=0;i<n;i++)
{
cin>>s[i];
}
sort(s,s+n,comp);
for(i=0;i<n;i++)
{
cout<<s[i];
}
cout<<endl;
}
return 0;
}
功能是想对string数组里面的内容进行不区分大小写的排序,请问这样做为什么SORT函数会出现错误,十分感谢!
------解决方案--------------------
发现一个逻辑错误,请参考
http://en.cppreference.com/w/cpp/algorithm/sort
注意sort()的谓词的函数签名