」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 C++ 中以字元數組形式存取原始向量資料?

如何在 C++ 中以字元數組形式存取原始向量資料?

發佈於2024-12-21
瀏覽:284

How to Access Raw Vector Data as a Char Array in C  ?

以 Char 陣列形式存取原始向量資料

考慮需要在函數中使用 std::vector 作為 char 陣列需要一個空指標。最初,使用常規字元數組很簡單。然而,切換到 std::vector 的靈活性在存取其原始資料方面提出了挑戰。

將向量指標傳遞給函數

立即嘗試將向量&something 或其迭代器&something.begin() 傳遞給函數,因為void 指標沒有產生所需的結果。相反,&something 傳回 std::vector 物件的位址,而不是資料本身,而 &something.begin() 提供迭代器的位址,不允許將其作為左值。

尋址索引 0 處的元素

解決方案在於檢索向量中第一個元素的位址。這可以透過多種方法來實現。一種方法是使用 &something[0],它給出索引 0 處元素的位址。另一個選擇是使用 &something.front(),它執行相同的任務。

Data() C 11 中的函數

對於C 11 及更高版本,std::vector 中引入了一個名為data() 的便利成員函數。此函數直接傳回容器中初始元素的位址。它的優點在於即使容器為空也可以安全使用。

結論

要將 std::vector 資料傳遞給接受 void 指標的函數,它需要擷取向量中第一個元素的位址。這可以使用 &something[0]、&something.front() 或 data() 函數來完成,這取決於 C 版本和容器大小。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3