【发布时间】:2017-02-18 17:31:25
【问题描述】:
如果我在 C++ 中有一个通过引用获取 std::vector<unsigned char> 的函数,我如何使用 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 很大,所以复制它是可行的,但不是一个好的解决方案。
为什么这不能编译?
【问题讨论】:
-
编译器告诉你什么...?
标签: c++ algorithm search iterator pass-by-reference