find 语句中的“!=vector.end()”是什么意思?
What does "!=vector.end()" mean in find statement?
此 accepted answer 声明以下代码:
std::find(vector.begin(), vector.end(), item)!=vector.end()
我理解的第一部分,我们要在vector的开始和结束之间找到item。但是为什么!=vector.end()
。类似于:"if the end of the vector does not equal what is found"?这段代码应该在 if
语句中吗?
std::vector::end
returns 一个 "special" 迭代器。它不会给你最后一个元素,而是 一个过去的结尾。
它也用于表示 "no match" 或 "no element",就像您在 1970 年代可能使用“-1”表示错误情况一样。
这就是您在这里看到的。
此 accepted answer 声明以下代码:
std::find(vector.begin(), vector.end(), item)!=vector.end()
我理解的第一部分,我们要在vector的开始和结束之间找到item。但是为什么!=vector.end()
。类似于:"if the end of the vector does not equal what is found"?这段代码应该在 if
语句中吗?
std::vector::end
returns 一个 "special" 迭代器。它不会给你最后一个元素,而是 一个过去的结尾。
它也用于表示 "no match" 或 "no element",就像您在 1970 年代可能使用“-1”表示错误情况一样。
这就是您在这里看到的。