有人能告诉我为什么std::sort会出现这种意外的行为吗?
此代码将给出运行时错误
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
inline bool compare(string a, string b){
return a.size() <= b.size();
}
int main(){
int n = 100;
string a = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
vector<string>v;
for(int i=0; i<n; i++){
v.push_back(a);
}
sort(v.begin(), v.end(), compare);
}
但是,当我用 return a.size() <= b.size();
替换 时,它工作得非常好。
https://stackoverflow.com/questions/50648428
复制相似问题