【发布时间】:2016-06-26 16:17:22
【问题描述】:
我想知道在 Set(来自 STL)上行走是否非常昂贵?我需要排序数组,这是我使用 Set 的唯一原因。我应该创建自己的排序列表还是在 Set 上行走“ok”?
【问题讨论】:
-
你为什么不考虑创建一个集合?这也需要时间
-
成本是相对的。测量,如果遍历集合是程序的瓶颈,请考虑替代方案。
标签: c++ stl set sortedlist
我想知道在 Set(来自 STL)上行走是否非常昂贵?我需要排序数组,这是我使用 Set 的唯一原因。我应该创建自己的排序列表还是在 Set 上行走“ok”?
【问题讨论】:
标签: c++ stl set sortedlist
不,它并不昂贵(渐近地)。根据 C++ 标准,它是在线性时间内完成的,因为每一步都需要恒定的时间(摊销)。
虽然遍历实际的排序数组(例如 std::vector 或普通 C 数组)可能会由于较低的常数而更快一些。
【讨论】: