The*_*ere 1 c++ algorithm iterator c++11
根据文件,std::find退货
持续
如果没有找到元素.那是什么意思?它是否返回指向容器中最后一个元素的迭代器?或者它是否返回指向的迭代器.end(),即指向容器外?将打印以下代码0,该代码不是容器的元素.所以,我想std::find在容器外面返回一个迭代器.能否请你确认?
int main()
{
vector<int> vec = {1, 2,3, 1000, 4, 5};
auto itr = std::find(vec.begin(), vec.end(), 456);
cout << *itr;
}
Run Code Online (Sandbox Code Playgroud)
last是第二个参数的名称find.它不知道你正在使用什么样的容器,只知道你给它的迭代器.
在你的例子中,last是vec.end()(根据定义)不可解除引用,因为它是最后一个元素的一个.因此,通过取消引用它,您可以调用未定义的行为,在这种情况下表现为打印出0.