您的位置:首页 > 编程语言

再贴一段代码(字符串处理的仿函子)

2009-02-12 23:02 239 查看
//ccsdu2004@yahoo.com.cn
//2009-02-12
//cheng du

#include <stdlib.h>
#include <iostream>
#include <string>

#include <vector>
#include <algorithm>
#include <iterator>
#include <boost/algorithm/string.hpp>
#include <boost/assign/std/vector.hpp>
using namespace std;
using namespace boost::assign;
class str_find //: private noncopyable
{
public:
str_find(int _i, const string &_str): i(_i), str(_str){}
public:
void operator()(const string& inputstr)
{
if(i==0) //contain
{
if(contains(inputstr,str)==true)
str_list.push_back(inputstr);
}
else if(i==1) //begin with
{
if(starts_with(inputstr,str)==true)
str_list.push_back(inputstr);
}
else if(i==2) //end with.
{
if(ends_with(inputstr,str)==true)
str_list.push_back(inputstr);
}
else  //none
{
return;
}
}
vector<string> &get_str_list()const
{
return str_list;
}
private:
int i;
string str;
static vector<string> str_list;
};
vector<string> str_find::str_list;
int main()
{

str_find str(1,"s");
vector<string> vect_str;
vect_str += "s.","ssd","ddd","asdf","s12s3d","dd";
for_each(vect_str.begin(),vect_str.end(),str);
//str.get_str_list();

copy (str.get_str_list().begin(),str.get_str_list().end(),
ostream_iterator<string>(cout,"/n"));
}

system("PAUSE");
return 1;
}


这段代码的意图是******

保密
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: