-6
boost :: container :: vector與std :: vector的性能如何比較,以及哪些因素對其有顯着影響?標準矢量和增強矢量的push_back:哪個更快?
特別是,我聽說std :: vector push_back比vector []要慢。這是如何比較提升?
boost :: container :: vector與std :: vector的性能如何比較,以及哪些因素對其有顯着影響?標準矢量和增強矢量的push_back:哪個更快?
特別是,我聽說std :: vector push_back比vector []要慢。這是如何比較提升?
矢量是一個簡單的概念。有許多std實現,一個boost實現,一個MFC實現以及其他十萬個實現。在摘要中它們應該都相當接近相同的速度。
在所有這些方面,將push_back
與operator[]
進行比較是沒有意義的,因爲它們做的事情完全不同。一個檢查容量,可能重新分配/移動,在後面創建一個新元素。另一個只是訪問一個已經存在的元素。但是,由於operator[]
實際上並沒有做什麼,它總是會更快。
您的預期用途的基準測試結果是什麼? –
*我聽說std :: vector push_back與vector [] *相比較慢,這兩件事情根本不會做同樣的事情,所以比較它們的速度是沒有意義的。 – Borgleader
std :: vector在調試版本中可能會比較慢(特別是在使用Microsoft(dinkumware)時)。在發佈版本中,應該沒有區別。 –