我正在研究不同类型的迭代器。我读过std::map
拥有bidirectional
迭代器。并且std::set
,std::list
也拥有这种类型的迭代器。为什么它们不是random access
迭代器?有人可以向我解释吗?谢谢!
答案 0 :(得分:1)
标准C ++库提供了对容器类型的随机访问迭代器
为此,访问任意元素需要固定的时间,例如std::array
,std::vector
,
std::deque
。那是因为
random access容器是之一
可以在恒定时间内访问任何元素。
std::list
不是随机访问容器类型:
访问需要线性时间。 std::set
都不是:访问
需要对数时间。同样std::map
。