在C語言中,標準範本庫(STL)提供了強大的資料結構,包括向量類別。雖然調整向量大小是一種常見操作,但人們擔心假設記憶體連續性的安全性。
提出的問題是:「如果調整了STL 向量的大小,我們是否可以假設尋址元素0 提供對連續元素的存取包含剩餘向量元素的記憶體位置?」
根據C 03 標準(23.2.4.1),答案是響亮的是的。此標準規定向量元素是連續儲存的,確保&v[n] == &v[0] n 對於所有0 ≤ n
但是,需要注意的是,該假設僅在重新分配向量之前才成立。向向量添加元素可以觸發重新分配,從而使從原始記憶體區塊派生的任何指標或迭代器無效。
因此,雖然在調整大小後立即假設連續性是安全的,但如果元素隨後添加或刪除,可能導致向量重新分配。
以上是調整大小後假設 STL 向量的連續性安全嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!