为工作选择正确的 STL 容器的标准?
您是否仅根据以下属性来选择 STL 容器?
- 搜索/更新
- 插入和
- 删除
如果不是,您的选择还基于什么? 是否有任何参考资料列出了每个容器在所有这些不同属性上的执行情况?
Do you just base your STL container selections on the following attributes?
- Searching/Updating
- Insertion and
- Deletion
If not, what else do you base your selections upon?
Is there any reference out there that lists how each container performs across all these different attributes?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Scott Meyers 的 Effective STL 不仅涵盖了这一点,但是您会遇到一些奇怪的容器(例如
set
)的奇怪陷阱。Scott Meyers' Effective STL covers not only this, but the weird pitfalls that you'll run into with some of the odder containers like
set
.+1 表示有效的 STL。
但如果您需要在线参考,StackOverflow 中有一个很好的流程图 问题 471432
+1 for effective STL.
But if you need an on-line reference, there is a good flowchart in StackOverflow Question 471432
确保数据放置在连续的内存中可能很重要。 通常,如果您有兴趣通过类似于 doSomething(int* data, int dataCount) 的接口使用结构中的数据。
Guarantee that the data is placed in continuous memory can be important. Typically if you are interested in using the data in the structure with interfaces that looks like doSomething(int* data, int dataCount).
我首先考虑数据的“形状”、每个项目重复的频率等。
I start of by thinking about the "shape" of the data, how often each item can repeat etc.