相关疑难解决方法(0)

你什么时候喜欢使用std :: list <T>而不是std :: vector <T>?

我从来没有用过std::list<T>自己.当我们已经拥有它时,我想知道人们何时使用它std::vector<T>就像具有连续内存的数组一样.std::vector当我们需要顺序容器时,它似乎是一个完美的选择

所以我的问题是

  • 究竟什么时候喜欢 std::liststd::vector?为什么呢?
  • 你什么时候喜欢 std::vectorstd::list?为什么?

如果有性能考虑因素,请列出详细说明/信息.

如果可能,请引用一些参考资料,以支持您的答案.

c++ containers stl

27
推荐指数
4
解决办法
6073
查看次数

根据Stroustrup的矢量vs列表

可能重复:
您何时更喜欢使用std :: list <T>而不是std :: vector <T>?

我刚观看了Bjarne Stroustrup对GoingNative'12演讲的录音.我有点困惑.

在本次演讲中,他特别讨论了vectorvs list问题,并建议在很多情况下vector即使你从中间插入和删除也要更快,因为编译器可以优化很多东西并且喜欢紧凑的结构.结论(据我所知)是:首先使用,vector然后再考虑是否需要其他东西.这听起来很合理,但考虑到第一次观察,我应该考虑哪些标准?我一直认为,如果你强烈插入/删除 - 使用列表.这里的一些主题也提出了类似的建议.看到

std :: vector与std :: list与std :: slist的相对表现?

STL中的向量与列表

现在根据Stroustrup我错了.

当然,我可以编写几个测试并试图弄清楚在每种特定情况下使用什么,但是有理论上的方法吗?

c++ stl list vector

13
推荐指数
1
解决办法
2452
查看次数

标签 统计

c++ ×2

stl ×2

containers ×1

list ×1

vector ×1