9#include <boost/random/independent_bits.hpp>
24 using random_bytes_engine = boost::random::independent_bits_engine<
28 random_bytes_engine rbe;
30 std::generate(buffer->begin(), buffer->end(), std::ref(rbe));
35 length = std::min(
static_cast<size_t>(buf.
size()), length);
38 auto buffer = std::make_unique<char[]>(2u * length + 1u);
40 for (
auto i = 0u; i < length; ++i)
41 sprintf(&buffer[2u * i],
"%02x", buf.
data()[i]);
43 if (length < buf.
size())
44 return std::string(buffer.get()) + std::string(
"...");
45 return std::string(buffer.get());
一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
const value_type * data() const noexcept
直接访问分配的内存,如果没有分配内存则返回 nullptr。
size_type size() const noexcept
static shared_buffer make_empty(size_t size=0u)
std::shared_ptr< Buffer > shared_buffer
std::string to_hex_string(const Buffer &buf, size_t length)
shared_buffer make_random(size_t size)