小编Tes*_*ter的帖子

基于长度对集合<string>进行排序

我的问题与有关.

我希望借助lambda表达式作为谓词来执行sort()操作set.

我的代码是

#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 << …
Run Code Online (Sandbox Code Playgroud)

c++ lambda stl set c++11

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

c++11 ×1

lambda ×1

set ×1

stl ×1