为什么 std::map 有双向迭代器类型?
Why std::map has got bidirectional iterator type?
我现在正在研究不同类型的迭代器。我读到 std::map
有 bidirectional
个迭代器。而std::set
、std::list
也有这种迭代器。为什么它们不是 random access
迭代器?谁能给我解释一下?谢谢!
标准 C++ 库提供容器类型的随机访问迭代器
访问任意元素需要常数时间,例如std::array
,std::vector
,
std::deque
。那是因为
random access 容器 是 之一
可以在恒定时间内访问任何元素。
std::list
不是随机访问容器类型:
访问需要线性时间。 std::set
也不是:访问
需要对数时间。同样 std::map
.
我现在正在研究不同类型的迭代器。我读到 std::map
有 bidirectional
个迭代器。而std::set
、std::list
也有这种迭代器。为什么它们不是 random access
迭代器?谁能给我解释一下?谢谢!
标准 C++ 库提供容器类型的随机访问迭代器
访问任意元素需要常数时间,例如std::array
,std::vector
,
std::deque
。那是因为
random access 容器 是 之一
可以在恒定时间内访问任何元素。
std::list
不是随机访问容器类型:
访问需要线性时间。 std::set
也不是:访问
需要对数时间。同样 std::map
.