我的问题与这个有关。
我想使用lambda表达式作为谓词,在set
上执行sort()
操作。
我的代码是:
#include <set>
#include <string>
#include <iostream>
#include <algorithm>
int main() {
using namespace std;
string s = "abc";
set<string> results;
do {
for (int n = 1; n <= s.size(); ++n) {
results.insert(s.substr(0, n));
}
} while (next_permutation(s.begin(), s.end()));
sort (results.begin(),results.end());[](string a, string b)->bool{
size_t alength = a.length();
size_t blength = b.length();
return (alength < blength);
});
for (set<string>::const_iterator x = results.begin(); x != results.end(); ++x) {
cout << *x << '\n';
}
return 0;
}
但是错误的数量和类型非常复杂,我无法理解如何修复它们。有人能告诉我这段代码哪里出错了吗。
);
应该是一个逗号。 - Blastfurnace