GCC 下STL 中sort函数无法正常工作?该怎么解决

GCC 下STL 中sort函数无法正常工作?
C/C++ code
vector<string> readFile(string fileName){
    cout<<"FileName : "<<fileName<<endl ;
    assert(fileName.empty() == false ) ;
    ifstream in(fileName.c_str()) ;
    assert(in != NULL ) ;
    vector<string > data ;
    string line;
    
    while(! in.eof()  ){
        getline(in,line,'\n') ;
        data.push_back(line) ;
    }
    in.close() ;
    cout<<"Data Size : "<<data.size()<<endl ;
    return data ;
}

int compare_me(const string &s1,const string &s2){
    //return s1.compare(s2) ;
    int len1 =s1.length() ,
        len2 = s2.length() ;
    if(len1 < len2)
        return -1 ;
    else if(len1 > len2 )
        return 1 ;
    else 
        return 0 ;
}

void displayVector(vector<string> &data){
    int i = 0 ;
    for(; i < data.size() ; i++){
        cout<<(i+1)<<"   :"<<data[i]<<endl ;
        if((i+1) % 10 == 0 )
            getchar() ;
    }
}

void testSort(){
    vector<string> data = readFile(__FILE__ ) ;
    displayVector(data) ;
    
    cout<<"data size At1 : "<<data.size()<<endl ;
    
    vector<string>::iterator end = data.end() ;
    vector<string>::iterator begin = data.begin() ;
    sort( begin ,end  ) ; 
    //sort( begin ,end ,compare_me ) ;// 为什么当用第三个参数的时候就能编译,但是不能运行?  我用的是GCC
    cout<<"data size At2 : "<<data.size()<<endl ;
    
    displayVector(data) ;
}
 


------解决方案--------------------
目测 sort第三参数返回值为bool类型,你的返回值状态太多了