c++ STL的问题

eskimoer 2013-07-22 01:52:21
尊敬的各位同志,你们好!我现在在做一个程序,里面要用到字符串匹配的东西,要把一个文本集里面的所有文档的词汇和一个词典的词汇进行对比,从而找出词典中这个词汇的重复度,请问有什么高效的算法来解决这个问题
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
eskimoer 2013-07-24
  • 打赏
  • 举报
回复
我已经知道怎么做了,是通过map的find函数,巧妙的利用find函数的返回值 map<string,int>mapxx; pair<map<string,int>::iterator,bool> pp; pp = mapxx.insert(pair<string,int>("we",1)); if(!pp.second) { pp.first->second++; } pp = mapxx.insert(pair<string,int>("we",1)); if(!pp.second) { pp.first->second++; } pp = mapxx.insert(pair<string,int>("we",1)); if(!pp.second) { pp.first->second++; }
icosagon 2013-07-23
  • 打赏
  • 举报
回复
boost里的库 tokenizer Xpressive,regex, Spirit 看你什么需求了,里面Spirit最强大,但作为一个框架,理解起来也难一些,编译超级耗时,如果需求较为简单,用regex一般就够了,Xpressive支持regex的所有功能,也支持spirit类似的静态方法,当然没spirit那么强了
Tiger-Su 2013-07-22
  • 打赏
  • 举报
回复
去掉
Tiger-Su 2013-07-22
  • 打赏
  • 举报
回复
[size=14px]给你写了一个算法,这个是求两个字符数组的匹配情况,符合则返回字符数组a.然而b数组是原数组,a数组和b数组对比,如果符合就 return a。 #include <algorithm> #include <cmath> #include <cstdlib> #include <iostream> #include <string.h> #include <algorithm> #include <cmath> using namespace std; char *chack(char a[],char b[]) //指针函数,返回值可以被输出 { int c=strlen(a); int i=0; char *p=a,*q=b; while(*p!='\0'&&*q!='\0') { if(*p==*q) { *p++; i++; } else *q++; } if(i==c) return a; } int main() { char a[10000],b[10000]; int n,c,k=1; cin>>b; sort(b,b+strlen(b)); cin>>a; sort(a,a+strlen(a)); cout<<chack(a,b); system("PAUSE"); return 0; }[/size]
91041 2013-07-22
  • 打赏
  • 举报
回复
有这样的算法啊 ++笑纳
ouyh12345 2013-07-22
  • 打赏
  • 举报
回复
map

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧