gpt4 book ai didi

c++ - 为什么 vector::iterator 和 set::iterator 的工作方式不同?

转载 作者:行者123 更新时间:2023-12-02 04:00:04 31 4
gpt4 key购买 nike

为什么我可以这样做

vector<int> a;
//...
cout << a.end()-a.begin();

但我不能用 set::iterator 做同样的事情?

最佳答案

Why do vector::iterator and set::iterator work different?

因为一个容器具有快速随机访问,而另一个容器则没有。因为因此,一个迭代器是随机访问迭代器,而另一个则不是。不保证双向迭代器支持减法。

您可以使用适用于所有输入迭代器的 std::distance 实现相同的效果。但您需要注意,它对于非随机访问迭代器具有线性复杂度。

关于c++ - 为什么 vector::iterator 和 set::iterator 的工作方式不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60659680/

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