(C++) 这个count_if 用得函数怎么错啊????

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:26:25
#include "stdafx.h"
#include<iostream>
#include<numeric>
#include<fstream>
#include<string>
#include<vector>
#include<list>
#include<deque>
#include<set>
#include<algorithm>
#include<stack>
#include<queue>
#include<utility>
#include<sstream>
#include<iterator>
#include<map>
#include<functional>
using namespace std;
class gt
{
public:
gt(size_t ss=0):ll(ss){cout<<"初始化完成!"<<endl;}
bool operator()(string &zz)
{
return zz.size()>=6;
}
private:
string::size_type ll;
};
int main()
{
gt kk;
vector<string> ss;
string uh;
for(size_t pp=0;pp!=10;++pp)
{
uh=pp;
ss.push_back(uh);
}
cout<<count_if(ss.begin(),ss.end(),kk(6))<<endl;//箭头指向这

class gt
{
public:
gt(size_t ss=0):ll(ss){cout<<"初始化完成!"<<endl;}
bool operator()(string &zz)
{
return zz.size()>=6;
}
private:
string::size_type ll;
};
int main()
{
gt kk(6);
vector<string> ss;
string uh;
for(size_t pp=0;pp!=10;++pp)
{
uh=pp;
ss.push_back(uh);
}
cout<<count_if(ss.begin(),ss.end(),kk)<<endl;//箭头指向这里
return 0;
}
赞成这种改法,
楼主重载了(),但是注意()里面形参是string 类型的,而kk(6)给了一个int 类型的实参,显然不对啊

两种改法自己选:
class gt
{
public:
gt(size_t ss=0):ll(ss){cout<<"初始化完成!"<<endl;}
bool operator()(string &zz)
{
return zz.size()>=6;
}
private:
string::size_type ll;
};
int main()
{
gt kk(6);
vector<string> ss;
string uh;
for(size_t pp=0;pp!=10;++pp)
{
uh=