我正在开发基于OpenGL的C++仿真。我现在正在优化我的代码,并且在代码中经常使用std:list和std:vector。什么是更具表现力的:继续使用C++ stl数据结构或基于指针的链表?涉及std :: list和std :: vector的主要操作是打开一个迭代器并循环遍历数据结构中的所有项并应用一些处理C++ stl集合或链接列表
1
A
回答
5
stl指针的容器怎么样?
你不可能开发比内建更好的表演结构。唯一的下行部分是容器实际上包含存储在其中的对象的副本。如果您担心这种内存开销(多个结构占用同一对象的多个副本,打破表中的一致性),您应该考虑使用stl指针结构来满足您的需求。
从算法上讲,你需要的结构是在stl中实现的,所以你应该使用它。没有必要重新实现相同的结构。
4
使用C++ STL数据结构,但有效地使用它们。如果您使用的std :: list和std ::载体,查找等功能发现,for_each的,积累等 下面是一些良好的阅读: http://www.cplusplus.com/reference/
阅读算法,数字和功能的章节。另外,我强烈推荐Scott Meyers的Effective STL。
相关问题
- 1. C++ STL链表
- 2. C++接口在STL ::列表
- 3. C++ STL集合差异
- 4. C++ STL集合使用
- 5. 双STL链接列表push_front错误
- 6. 两个链接列表的联合 - C++
- 7. C++矢量/链接列表混合
- 8. C++排序向量或链接列表
- 9. C++ STL集合和C#集合的比较?
- 10. C - 链接列表
- 11. C++链接列表
- 12. C++链接列表
- 13. 尝试继承STL集链接错误
- 14. 在C++链接列表如何去“下一个元素”使用STL列表
- 15. c/C++链接列表
- 16. 合并2个链接列表并追加到链接列表的末尾C++
- 17. C++ STL集合:与外在状态
- 18. C++:STL:集合:存储值常量性
- 19. Mongodb链接集合
- 20. 链接MongoDB集合
- 21. 数组或链接列表
- 22. 如何链接C++代码中的STL?
- 23. C++ STL列表迭代器
- 24. STL集合与单个键
- 25. Redis“nil”或“空列表或集合”
- 26. 使用STL的图(列表向量,即邻接列表) - C++
- 27. 加倍链接列表C++
- 28. 链接列表头C++
- 29. 指针链接列表C
- 30. C通用链接列表
如果你还没有分析你的代码,你提前问这个问题。在到达这里之前,您应该知道std :: list或std :: vector是否花费了不成比例的时间。 – 2010-03-15 22:45:37
我怀疑如果你分析你的代码,你会发现你使用STL并不是最慢的事情。不要问这个问题,直到它是最慢的事情...在完全优化的发布模式。 – 2010-03-15 22:46:15
仅供参考,“高性能”是我最常听到的所谓“performatic”的字眼。 – sblom 2010-03-21 18:59:34