【发布时间】:2018-07-20 07:24:35
【问题描述】:
我想保留一个对象列表,以便我可以遍历它们并通过遍历它们中的每一个来通知它们中的每一个事件。我不在乎他们收到通知的顺序,我只需要对这些对象的迭代和方法调用尽快发生。
对于此类功能,最有效的(C++ 标准库)数据结构是什么?
【问题讨论】:
-
可能
std::vector -
这取决于您如何迭代、您预先了解多少(例如数据结构大小)以及许多其他事情。一般来说,如果您预先知道大小,请选择
std::array或纯 C 数组,否则选择std::vector。如果你衡量(不要基于理论)一个问题,那么值得看看其他的:) -
世界上没有“最高效”的东西。
-
除非每个对象在收到通知时采取的行动绝对是微不足道的,否则与处理通知所花费的时间相比,迭代所花费的时间可以忽略不计。因此,在这种情况下,根据迭代速度来选择数据结构可能是一个错误。在原始访问速度方面,很难击败普通的老式数组。
标签: c++ list data-structures