leveldb に key(url) と value(jpg 画像) を保存したいです。言われているように、
キーと値は任意のバイト配列です。
DB::Get API を使用するにはどうすればよいですか?
Slice はメモリーを所有していません (メモリーを指すだけです)。そのため、Slice を返すことは、呼び出し元がメモリーを解放する必要があることを意味します。
したがって、値のセマンティクスを持つ型が必要です。
バイナリ配列の自然値はstd::vector<uint8_t>
、それが示すように になります。ただし、std::string
代わりに使用することもできます(回答で指摘したように)。実際の文字列を読み取ることが予想される場合(キャストは必要ありません)、より便利です。
ただし、主な問題は、その理由が文書化されていないことです。
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!