std::vector
存儲它是在連續的存儲元件相對於std::list
。當遍歷元素時,這會給std::vector
帶來更好的性能,因爲當迭代std::list
時,所有東西都是整齊排列的,而跳過所有內存。是存儲在標準::向量指針破壞它的優勢的連續存儲器存儲
問題是大多數我智能指針存儲在矢量多態性或用於與代碼的其他部分共享這些對象的時間。由於每個對象現在都是動態分配的,因此我認爲它們會在不同的內存位置結束這是否破壞了使用std::vector
的目的,並將它變成類似std::list
的東西?有什麼可以解決這個問題嗎?
'std :: vector'的目的是爲了簡化存儲元素。無論您是將指針放在那裏還是對象,這都是它的目的,而不是擊敗它。 –
如果你測量,我想你會發現遍歷向量或列表(或任何其他可迭代容器)的迭代不會有任何明顯的差異。 –
@JoachimPileborg也許你應該嘗試測量它。你會驚訝...... :) – jalf