关于向算法传递函数的问题
程序是没错的目前,目的是选出比输入的长度“n”长的string,就是有一个之前的报错不太明白。。#include <iostream>
#include <string>
#include <vector>
#include<stack>
#include<algorithm>
using std::string;
using std::cout;
using std::cin;
using std::endl;
using std::vector;
int main()
{
std::vector<std::string> v
{
"1234","1234","1234","hi~", "alan", "alan", "cp"
};
string::size_type n = 4;
vector<string> b( v.size());
stable_sort(v.begin(), v.end(), [](string const a, string const b) {return a.size() <b.size(); });
//**********上面这句是想排序用的,但是按照这行注解的这种写法总是报错:项不会计算为接受2个参数的函数,
//我知道这种排序的算法肯定不对,但是语法应该没错,不知为何会这么报错呢,还是就是因为算法不对就这么报,不知大神们明白我的意思吗。。
// stable_sort(v.begin(), v.end(), [n](string const a) {return a.size() >= n; });
for (auto i : v)
cout << i << " ";
cout << endl;
auto ptr = unique(v.begin(), v.end());
v.erase(ptr, v.end());
auto p = find_if(v.begin(), v.end(), [n](string const a) {return a.size() >=n; });
copy(p, v.end(), b.begin());
for (auto i : b)
cout << i<<" ";
std::cout << std::endl;
return 0;
}
[此贴子已经被作者于2016-6-13 05:11编辑过]