这两个函数感觉差不多,为什么find002()函数会报错:引发异常,读取访问权限冲突,而find003()这个函数却没问题,不知道哪里出错了。
vector<int>::iterator find002(vector<int> v, const int i)
{
for (vector<int>::iterator it=v.begin();it!=v.end();it++)
{
if (*it == i)
{
return it;
}
}
return v.end();
}
vector<int>::iterator find003(vector<int>::iterator beg, vector<int>::iterator end, const int i)
{
for (vector<int>::iterator it = beg; it != end; it++)
{
if (*it == i)
{
return it;
}
}
return end;
}
int main()
{
vector<int> v1{ 2,3,4,1,5,6 };
cout << *find002(v1, 4)<< endl;//这个报错
cout << *find003(v1.begin(), v1.end(), 4) << endl;//这个正常运行
return 0;
}