【发布时间】:2013-04-23 13:01:41
【问题描述】:
在 C++ 中我有
vector < vector <string> > Kblist;
Kblist里面有很多子句,clauses=kblist.size();的个数和Kblist里面的每一个子句都是字符串型的向量,句中的每一个词都在Kblist[i]里面分割。
在"I love you"中找到一个句子,在"you love i"中找到另一个句子并从Kblist中删除这两个句子的最快方法是什么,我的代码可能正在运行,但我认为它是因为太多循环太慢了。所以我想知道有没有更好的解决方案,比如使用排序、clause1==clause2 或其他方法。
for (int a=0; a<KBlist.size(); a++){
for (int b=a+1; b<KBlist.size(); b++){
int checksize=0;
if (KBlist[a].size()==KBlist[b].size()) {
for (int c=0; c<KBlist[a].size(); c++){
for (int d=0; d<KBlist[b].size(); d++){
if (KBlist[a][b]==KBlist[c][d]&&KBlist[a][b+1]==KBlist[c][d]) {
checksize=checksize+1;
break;
}
}
}
if (checksize==c.size()) {
inset=1;
break;
}
}
}
}
}while (duplicate==0);
【问题讨论】:
标签: c++ sorting vector compare