binary - 为什么 leveldb DB::Get API 使用 std::string 作为值类型?

标签 binary leveldb

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

Keys and values are arbitrary byte arrays.

如何使用 DB::Get API?

最佳答案

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

因此需要一种具有值语义的类型。

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

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

关于binary - 为什么 leveldb DB::Get API 使用 std::string 作为值类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14214890/

相关文章:

c - 用 printf() 进行二进制打印可以这样吗?

node.js - 适用于 Windows/Node 0.8 的 Node.js 键值存储

key-value-store - 如何在单个 levelDB 实例中创建多个逻辑表?

ios - 库未加载 : @rpath/leveldb. framework/leveldb

algorithm - 黑盒计数到 19 只有 2 位,并且只能切换?

c++ - sd_journal_send 发送二进制数据。如何使用 journalctl 检索数据?

java - 我如何在java中读取二进制数据文件

c++ - 我可以在 C 或 C++ 中使用二进制文字吗?

LevelDB插入顺序性能

java - 按数字顺序对字节数组进行排序