c++ - 在列表中寻找值(value)

标签 c++ list

此代码片段确定一个整数是否在名为 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/

相关文章:

c# - 检查两个列表是否有冲突元素?

python - 从列表中随机选择子例程

c++ - 线程管理内存泄漏

c++ - 来自带有时区和夏令时的字符串的 Qt QDateTime

c++ - Sigaction 的替代方案

c++ - 在 Visual Studio 2008 中引用另一个非托管 C++ 项目中的非托管 C++ 项目

c++ - 改变QDir::rootPath() 为程序运行路径?

javascript - C#'s/Java' s JQuery/JavaScript 中的 List<Type> 数据结构

css - 使用不同分隔符的嵌套连接

java - 用于替换 Java 中的列表成员的迭代器?