static bool compareVector(const std::vector<int>& desVec, const std::vector<int>& srcVec)
{
if (srcVec.size() == 0 || desVec.size() == 0 || desVec.size() < srcVec.size())
{
return false;
}
int i = 0;
int j = 0;
std::vector<int> tempVec;
while (i < desVec.size())
{
int v = desVec[i];
if (j == 0 && v == srcVec[0])
{
tempVec.push_back(i);
i ++;
j ++;
continue;
}
if(tempVec.size() > 0)
{
while (j < srcVec.size())
{
int sv = srcVec[j];
int index = tempVec.back();
if (v == sv && index == i - 1)
{
tempVec.push_back(i);
}
else
{
tempVec.clear();
j = 0;
if (j == 0 && v == srcVec[0])
{
tempVec.push_back(i);
j ++;
}
break;
}
j ++;
}
}
if (i > desVec.size() - srcVec.size() + 1 || tempVec.size() == srcVec.size())
{
break;
}
i ++;
}
if (tempVec.size() == srcVec.size()) return true;
return false;
}
其实还有一个比较简单的方法,就是把两个vector的内容转换成字符串,然后进行字符串的匹配,只是性能消耗比较大