在 C 領域,向量作為動態記憶體管理的強大工具佔據著至高無上的地位。然而,當涉及到在向量中儲存引用時,可能會出現令人費解的錯誤。
考慮以下程式碼片段:
std::vector<int> hello;
此程式碼可以無縫編譯,讓您可以建立向量整數。但是,當我們嘗試使用引用時會發生什麼?
std::vector<int &> hello;
編譯器爆發錯誤,大喊:「指向引用的指標是非法的。」這種奇怪的行為源自於 C 中所引用的基本性質。引用一旦初始化,就保持不可變,並在其整個生命週期中綁定到各自的引用物件。嚴格禁止為引用分配新值。
不幸的是,這種不變性與向量等容器的本質相衝突。容器要求其元件可分配,以確保正確的記憶體管理和修改功能。由於引用缺乏這種可分配性,因此它們作為向量組件是不相容的。
因此,在向量中儲存參考的唯一可行選擇是使用指針,它提供了隨時間推移指向不同物件所需的靈活性。
以上是為什麼我不能在 C 向量中使用引用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!