如何从缓冲区及其大小填充std::向量
How can I populate a std::vector from a buffer and its size?
我有一个关于std::vector类型的简单问题。潜在的问题很简单:我有一个函数,它将数据流读取到缓冲区(以及获取缓冲区的大小),然后将该数据作为向量返回。集合元素的类型是固定的,uint8_t。我的问题是,有没有比遍历缓冲区更好的方法来填充向量?
这是我天真、愚蠢的代码:
uint8_t* buffer;
size_t size;
stream->readBuffer(buffer, size); // I don't own the stream class
std::vector<uint8_t> output(size);
for (size_t i = 0; i < currentChunkLength; i++)
{
output.push_back(buffer[i]);
}
return output;
使用构造函数获取迭代器:
std::vector<unit8_t> output(buffer, buffer + size);
您可以一步读取(您拥有vector
):
std::vector<uint8_t> output(size);
stream->readBuffer(output.data(), output.size());
相关文章:
- 如何用文本填充 std::vector<int64_t>
- 用原始数据填充 std::vector
- 给定一个填充无符号字符**的 C 函数,如何在没有中间副本的情况下用数据填充 std::vector
- 直接从 C API 填充 std::string
- 用常量值填充 std::vector<double>
- 在成员初始化列表中填充 std::array
- 可以使用 memset 来填充 std::complex<float>s 数组吗?
- 填充 std::d eque<std::vector<std::string>> with boost::assign::list_of
- 清除并重新填充 std::vector<std::vector<T>>导致分配问题
- 用类的第一个条目填充std::向量的首选方法
- 使用函数指针自动填充 std::map
- 如何从缓冲区及其大小填充std::向量
- 可以直接用get_line填充std::vector<std::string>
- 使用boost::bind()填充std::min_element()的自定义函数中的结构
- 填充 std::map 时"C2593: operator = is ambiguous"
- 在填充std::矢量时使用不同的地址
- 为什么从std::string的initializer列表中填充std::向量不会调用std::字符串构造函数
- 在编译时填充 std::数组,并使用 const_cast 填充可能的未定义行为
- 用异构boost::融合向量类型数据填充std::vector
- c++使用' .reserve() '填充' std::vector '作为防止多线程缓存无效和错误共享的一种方