首頁 > 後端開發 > C++ > 主體

如何從`std::vector`取得原始資料指標?

Susan Sarandon
發布: 2024-11-21 22:57:11
原創
222 人瀏覽過

How to Obtain a Raw Data Pointer from a `std::vector`?

為std::vector 提供原始資料指標

使用std::vector 作為char 陣列時,可能會出現需要將原始資料指標傳遞給需要void 指標的函數。最初,字元陣列用於此目的,如程式碼所示:

char something[] = "my data here";
process_data(something);
登入後複製

但是,std::vector 的動態性是可取的,導致以下嘗試:

vector<char> something;
*cut*
process_data(something);
登入後複製

挑戰在於將char向量傳遞給函數,以便它可以存取向量的原始資料data.

傳遞原始資料指標

使用&something 傳遞向量物件的位址是不正確的,因為它不提供資料的位址。同樣,使用 &something.begin() 也是不標準的,會產生警告。

正確的做法是取得容器初始元素的位址,可以透過以下方式實現:

&something[0] // or &something.front()
&*something.begin()
登入後複製

在C 11 中,std::vector 類別引入了一個新的成員函數data (),其作用與上述方法相同。它傳回容器的初始元素的位址,即使容器為空也可以安全使用。

以上是如何從`std::vector`取得原始資料指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板