gpt4 book ai didi

c++ - 为什么 std::find for vector 返回一个迭代器而不是整数位置

转载 作者:可可西里 更新时间:2023-11-01 17:34:16 25 4
gpt4 key购买 nike

为什么 vector 查找返回的是迭代器而不是整数值?

vector<string>::iterator itr1 = std::find(words.begin(), words.end(), word);

最佳答案

std::find适用于各种容器,而不仅仅是 std::vector。例如,它适用于 std::list 但该容器不允许通过索引访问元素(至少不容易)。为了让它与所有类型的容器一起工作,它需要返回所有容器都能理解的东西,一个迭代器。

编辑:如果你想找到相当于给定迭代器的索引位置,你可以使用 std::distance .例如:

std::distance(std::begin(words), itr1);

这适用于标准容器,但对某些容器来说可能会更慢。如果找不到元素,它返回容器的大小,因为 find 如果找不到元素返回 endbegin 之间的距离> 和 end 是容器的大小。

关于c++ - 为什么 std::find for vector 返回一个迭代器而不是整数位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57794072/

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