我正在開發基於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