gpt4 book ai didi

c++ - std::find 在空 vector 上是否会导致未定义的行为?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:06:28 25 4
gpt4 key购买 nike

尝试查找有关在 std::find 期间使用空 vector 时会发生什么情况的信息,但没有找到任何信息。

我的问题是,如果将空 vector 传递给 std::find,返回值是否始终为 nullptr 还是未定义行为?

  std::vector<int> someDataContainer;
auto it = std::find(someDataContainer.begin(), someDataContainer.end(), 1);

最佳答案

当元素不存在时find的返回值是end迭代器:

[alg.find] (emphasis mine):

Let E be:

  • *i == value for find,
  • [...]

Returns: The first iterator i in the range [first, last) for which E is true. Returns last if no such iterator is found.

这包括因为范围为空而不存在的元素。

关于c++ - std::find 在空 vector 上是否会导致未定义的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54092408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com