gpt4 book ai didi

c++ - unordered_set::iterator it+n 的时间复杂度是多少?

转载 作者:搜寻专家 更新时间:2023-10-31 00:09:01 26 4
gpt4 key购买 nike

假设我有一个 std::unordered_set<int>命名为 myset我想从 myset 返回一个随机数在O(1)时间。我首先使用 rand()生成一个随机数:

int n = rand() %  myset.size();

然后,我做:

myset.begin() + n;

我想知道 myset.begin() + nO(n)O(1)

谢谢!

最佳答案

std::unordered_set<>::iterator (结果来自 myset.begin() )是一个 Constant ForwardIterator . Ref

A ForwardIterator支持递增(++myIterator)但不支持随机递增,不像RandomAccessIterator .

因此myset.begin() + n不保证按标准编译。它不编译 here .

你可以做 ++增量n循环,但当然,复杂度至少为 O(n)。

关于c++ - unordered_set<int>::iterator it+n 的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45395619/

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