我正在寫一些數據結構的並行實現。我想知道是否有人知道純指針和std :: vector之間的性能差異。如果你知道它的可靠文檔,請寫URL /書名/任何。歡迎任何提示!C++ std ::向量性能[需要參考]
2
A
回答
5
區別在於使用方法和執行相對。
3
通過使用未經檢查的運算符[]並適當調整大小,可以使std :: vector像普通指針一樣快。現實情況是,矢量是指針上的編譯時抽象,而不是運行時指針,除非您選擇使用額外值。更重要的是安全向量提供了大量增加 - 調試迭代器,自動和安全的資源管理等。沒有理由使用原始指針。
編輯:我的參考是你以前做過的性能分析,你甚至認爲失去了矢量的安全性。
0
根據this answer in a similar question,訪問動態分配數組中的元素與std::vector
大致相同。在這個問題和this one as well有一些很好的分析。
0
如果你的意思是比較這裏的一些手寫的動態數組std::vector
有一些參考點:
- 調整大小的因素上插入是很重要的。這個因素沒有被標準規定,但通常在1.5或2之間,並且它必須保證在插入操作中的分期恆定時間。
- 分配器:很多性能取決於所使用的分配機制,同樣適用於指針。
- 如果您調用,那麼在原始指針中不會發生邊界檢查,則可以在
std::vector
中發生邊界檢查。
相關問題
- 1. std ::向量運算符重載不需要常量參數?
- 2. 參考STL向量類型
- 3. C++和Thrift:參考需要開始
- 4. 需要Syncfusion.OcrProcessor.Base.dll裝配參考
- 5. C/C++矢量和參考參數
- 6. 性能的std ::向量4維
- 7. 從C++向量中提取參考
- 8. 將std :: shared_ptr設置爲指向參考
- 9. 是否需要System.Web.Silverlight參考?
- 10. Xamarin需要參考Windows.Foundation.FoundationContract
- 11. 改變const的參考std :: string參考
- 12. C++參考變量
- 13. 的類型爲std參考無效初始化::向量
- 14. C++參考本地變量與參考
- 15. 包裝std ::向量,向量,C++ SWIG Python
- 16. 爲什麼我們需要捕獲lambda參考的參考?
- 17. 參考元素在boost.fusion向量
- 18. 要求::參考
- 19. Clojure向量的參考
- 20. C++的std ::向量構造
- 21. 多維的std ::向量(C++)
- 22. 移動成需要常量左值參考
- 23. 修改參考返回的向量
- 24. 如何在C++中傳遞向量作爲參考?
- 25. C++參考VS局部變量
- 26. 參考需要多少空間?
- 27. G ++未定義參考std ::
- 28. C++轉發參考和右值參考
- 29. 不能的push_back插入參考矢量
- 30. 在vs2010中需要添加什麼參考才能使用OpenGL?
指針和`std :: vector`之間的通用性是什麼? – pmr 2010-11-25 21:14:06
不幸的是,我對此一無所知,但+1對於一個非常好的,可能很常見的問題:-) – Bojangles 2010-11-25 21:15:03
兩者都可以存儲任何類型的數據。我問,因爲我不知道哪一個更快。 – Adam 2010-11-25 21:15:46