std::vector<unsigned char>
を参照するC++の関数がある場合は、std::search
を使用して署名を見つけるにはどうすればよいですか?std :: searchを標準で使用する方法::参照渡しのベクトル?
int check (const std::vector<unsigned char>& vect)
{
std::string signature("<!-- signature -->");
std::string signature2("<!-- another -->");
std::vector<unsigned char>::iterator itr;
unsigned int kind = 0;
itr = std::search(vect.begin(),vect.end(),signature.begin(),signature.end());
if (itr!=vect.end()) kind=1;
if (kind == 0)
{
itr = std::search(vect.begin(),vect.end(),signature2.begin(),signature2.end());
if (itr!=vect.end()) kind=2;
}
return kind;
}
vect
は、巨大であるので、それが動作コピー、悪いソリューションです:
のコードは次のようになります。
なぜこれはコンパイルされませんか?
をコンパイラはあなたに言う...? –