此accepted answer说明以下代码:
std::find(vector.begin(), vector.end(), item)!=vector.end()
我理解的第一部分,我们将在 vector 的开头和结尾之间找到 item 。但为什么!=vector.end()
。类似于:“如果向量的末尾不等于找到的东西”?该代码应该在if
声明中吗?
答案 0 :(得分:5)
std::vector::end
返回一个“特殊”迭代器。它没有给你最后一个元素,但一个结束。
它也用于表示“不匹配”或“无元素”,就像你可能在20世纪70年代使用“-1”来表示错误情况一样。
这就是你在这里看到的。