2013-01-08 69 views

回答

2

我終於明白了! C++ std :: string使用size()方法獲取數據長度,使用.data()獲取數據值。 C++ std :: string不以'\ 0'結尾,而是由size()函數指定!

+0

其實底層數據_is_保證以''\ 0''結尾;) –

0

或者,如果您使用迭代器,則可以直接從返回切片的iter->Value()函數中提取數據。這避免了複製到中間字符串中。

3

Slice並不擁有內存(只是指向它),所以返回一個Slice意味着調用者應該釋放內存。

所以需要一個具有值語義的類型。

二進制數組的自然值將是std::vector<uint8_t>,因爲它意味着如此。但std::string也可以用來代替(正如你在答案中指出的那樣),如果你期望讀一個真正的字符串(不需要強制轉換),它會更有用。

主要問題是,原因沒有記錄,但。

相關問題