【发布时间】:2013-11-16 10:24:27
【问题描述】:
对于我的应用程序,我使用的是 STD 向量。我在最后插入向量,但是从向量中随机擦除,即元素可以从中间、前面的任何地方擦除。这两个只是要求,1)在末尾插入 2)从任何地方擦除。
所以我应该使用 STD 列表,因为擦除确实会移动数据。或者我会出于任何原因在我的代码中保留 Vector??
请发表评论,如果 Vector 是更好的选择,这里的 List 会更好吗?
【问题讨论】:
-
IMO,如果删除元素是代码的一个重要方面,那么选择 std::list;如果您不经常删除元素或者如果向量很小,请保留该向量。
-
有人会说使用
std::vector,句号。在性能方面,缓存局部性往往比插入或删除的复杂性更重要。 youtube.com/watch?v=YQs6IC-vgmo -
@MarcClaesen 我几个月来一直在 stackoverflow 上发布 Bjarn 视频,没有人会盲目注意。 “我们知道列表更好,拉拉拉......”如果你把你的评论作为答案,我会投票给它。
-
@user1158692 把它变成了答案:)
标签: c++