本文整理汇总了C++中VVI::end方法的典型用法代码示例。如果您正苦于以下问题:C++ VVI::end方法的具体用法?C++ VVI::end怎么用?C++ VVI::end使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VVI
的用法示例。
在下文中一共展示了VVI::end方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: can
bool can(int prefLength,VI& result,bool return_result = false){
result.clear();
vector<Hash> hashes;
int n = 1;
for(int sn = 0; sn<n;++sn){
HashComputer<mod1> curHash1;
HashComputer<mod2> curHash2;
for(int i = 0; i < prefLength; ++i){
curHash1.add(a[sn][i]);
curHash2.add(a[sn][i]);
}
hashes.push_back(Hash(make_pair(curHash1.value,curHash2.value),sn,0));
for(int i = prefLength; i < a[sn].size(); ++i){
curHash1.shift(a[sn][i-prefLength],a[sn][i],prefLength);
curHash2.shift(a[sn][i-prefLength],a[sn][i],prefLength);
hashes.push_back(Hash(make_pair(curHash1.value,curHash2.value),sn,i-prefLength+1));
}
}
sort(hashes.begin(),hashes.end());
//hashes.resize(unique(hashes.begin(),hashes.end(),EqualString())-hashes.begin());
VVI results;
for(int i = k-1; i < hashes.size();++i)
if(hashes[i].equals(hashes[i-k+1])){
if(return_result == true){
results.push_back(VI());
int k = results.size()-1;
for(int j = i-n+1; j <=i;++j)
results[k].push_back(hashes[j].pos);
}
else
return true;
}
if(return_result == true){
result = *min_element(results.begin(),results.end());
return true;
}
return false;
}