我很好奇为什么 STL 容器 unordered_set
平均具有恒定的随机访问时间复杂度,却没有提供一种方法来访问距离第一个元素一定距离的元素容器。例如:
T& unordered_set::operator[](size_t index)
{
return *(begin() + index);
}
最佳答案
“按一定距离”访问元素意味着有一些有意义的方法来测量该距离。 std::unordered_set
的问题在于,好吧,无序。因此,没有任何有意义的方式来以非任意的方式解释“距开始有一段距离”。
如果要按距离访问,将数据复制到一个vector中:
std::vector tmp(unordered.begin(), unordered.end());
关于c++ - 为什么 unordered_set 不提供数组访问运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29552086/