3

我想在 leveldb 中存储键(url)和值(jpg 图像)。据说,

键和值是任意字节数组。

如何使用 DB::Get API?

4

3 回答 3

3

Slice 不拥有内存(只是指向它),因此返回 Slice 意味着调用者应该释放内存。

所以需要一个具有值语义的类型。

std::vector<uint8_t>正如它所暗示的那样,二进制数组的自然值是。但std::string也可以代替使用(正如您在回答中指出的那样),如果您希望读取真正的字符串(不需要强制转换),它会更有用。

不过,主要问题是原因没有记录在案。

于 2014-05-04T18:08:19.693 回答
2

I finally got it! c++ std::string use size() method to get the data length, use .data() get the data value. c++ std::string is not terminated by '\0', but specified by the size() function!

于 2013-01-09T02:29:15.903 回答
0

或者,如果您使用迭代器,您可以直接从iter->Value()返回切片的函数中提取数据。这避免了复制到中间字符串中。

于 2013-10-08T13:36:55.433 回答