此代码片段确定一个整数是否在名为 engie
的列表中。
return std::find(engie.begin(), engie.end(), find_value) != engie.end();
为什么是比较迭代器和列表末尾的if语句? 我意识到查找范围是从 [first, last)
那么对于包含整数 {1,2,3} 的列表,last 不是 = 3 吗?
如果不搜索,它如何找到 3
?
将迭代器输入到序列中的初始位置和最终位置。搜索的范围是[first,last),包含first和last之间的所有元素,包括first指向的元素,不包括last指向的元素。
最佳答案
函数
find (InputIterator first, InputIterator last, const T& val)
返回第一个匹配项的位置(如果有匹配项)。否则返回最后位置。它将在 [first, last) 范围内搜索。此范围包括第一个元素但不包括最后一个。
因此在代码片段中,当迭代器不等于最后一个元素(即 engie.end)时,您将获得匹配项并返回匹配项的位置。
可以引用this
关于c++ - 在列表中寻找值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22054717/