用std :: copy复制缓冲区

穆罕默德·阿布·穆萨(Mohammad Abu Musa)|

我正在编写视频编码器,出于某种原因,我想使用矢量复制缓冲区std::copy仅复制第一个字符。我的目标是复制缓冲区,然后使用将它们写入文件fwrite

我正在使用Google Native Client,该客户端不允许fwrite直接从主线程访问,因此我创建了一个新线程,必须将缓冲区移至fwrite

我用这个问题标记了多线程,以获取您对这种处理缓冲区的方法的反馈。

std::vector<char> buffer_(4);
char header[4];
header[0] = 'D';
header[1] = 'K';
header[2] = 'I';
header[3] = 'F';

unsigned dataArraySize = sizeof(header) / sizeof(char);

std::copy(&header[0], &header[dataArraySize], buffer_.begin());
std::stringstream ss;
std::string s;



for (std::vector<char>::iterator it = buffer_.begin(); it!=buffer_.end(); ++it)
{
    char c = *it;
    ss << c;
    ss >> s;
    Logger::Log(s);
}

对于输出,我只能得到四次D

贾罗德42

复制是好的,它是从char到string的转换,这是错误的,您可以只使用适当的构造函数

for (std::vector<char>::iterator it = buffer_.begin(); it!=buffer_.end(); ++it)
{
    char c = *it;
    Logger::Log(std::string(1, c));
}

或简单地

for (char c : buffer_) {
    Logger::Log(std::string(1, c));
}

而且,根据记录器的不同,可能会串联形成一个唯一的字符串:

Logger::Log(std::string(buffer_.data(), buffer_.size()));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 std::copy() 复制到指向通用字节缓冲区开头的指针?

来自分类Dev

std :: stringstream直接输出缓冲区/字符串结果访问,避免复制?

来自分类Dev

将缓冲区或C字符串复制到std :: string的最快方法

来自分类Dev

如何将部分char缓冲区复制到std :: string?

来自分类Dev

将缓冲区或C字符串复制到std :: string的最快方法

来自分类Dev

如何将部分char缓冲区复制到std :: string?

来自分类Dev

从std :: vector的缓冲区CV :: imwrite

来自分类Dev

std :: stringstream缓冲区操作

来自分类Dev

用Delphi区分缓冲区

来自分类Dev

用Qt解析GLTF缓冲区

来自分类Dev

recvfrom用零填充缓冲区

来自分类Dev

如何清除(用随机字节覆盖)std :: string内部缓冲区?

来自分类Dev

用ajax上传数组缓冲区(音频缓冲区)的最佳方法

来自分类Dev

用ajax上传数组缓冲区(音频缓冲区)的最佳方法

来自分类Dev

C ++使用std :: string,std :: wstring作为缓冲区

来自分类Dev

复制 vim 缓冲区

来自分类Dev

如何使用std :: hash哈希缓冲区?

来自分类Dev

如何保存和恢复std :: istringstream的缓冲区?

来自分类Dev

std :: cin:清空输入缓冲区而不会阻塞

来自分类Dev

直接写入std :: string的char *缓冲区

来自分类Dev

直接写入std :: strings缓冲区是否安全?

来自分类Dev

std :: cin:清空输入缓冲区而不会阻塞

来自分类Dev

如何保存和恢复std :: istringstream的缓冲区?

来自分类Dev

用Python解压缩缓冲区?

来自分类Dev

用熊猫创建缓冲区时发生内存泄漏?

来自分类Dev

C ++用libzpaq压缩到char *缓冲区

来自分类Dev

用C#BinaryWriter缓冲区发送段?

来自分类Dev

read()用多余的字符填充缓冲区

来自分类Dev

未能刷新缓冲区。没有缓冲区可以用 ob_end_flush() 方法刷新

Related 相关文章

  1. 1

    如何使用 std::copy() 复制到指向通用字节缓冲区开头的指针?

  2. 2

    std :: stringstream直接输出缓冲区/字符串结果访问,避免复制?

  3. 3

    将缓冲区或C字符串复制到std :: string的最快方法

  4. 4

    如何将部分char缓冲区复制到std :: string?

  5. 5

    将缓冲区或C字符串复制到std :: string的最快方法

  6. 6

    如何将部分char缓冲区复制到std :: string?

  7. 7

    从std :: vector的缓冲区CV :: imwrite

  8. 8

    std :: stringstream缓冲区操作

  9. 9

    用Delphi区分缓冲区

  10. 10

    用Qt解析GLTF缓冲区

  11. 11

    recvfrom用零填充缓冲区

  12. 12

    如何清除(用随机字节覆盖)std :: string内部缓冲区?

  13. 13

    用ajax上传数组缓冲区(音频缓冲区)的最佳方法

  14. 14

    用ajax上传数组缓冲区(音频缓冲区)的最佳方法

  15. 15

    C ++使用std :: string,std :: wstring作为缓冲区

  16. 16

    复制 vim 缓冲区

  17. 17

    如何使用std :: hash哈希缓冲区?

  18. 18

    如何保存和恢复std :: istringstream的缓冲区?

  19. 19

    std :: cin:清空输入缓冲区而不会阻塞

  20. 20

    直接写入std :: string的char *缓冲区

  21. 21

    直接写入std :: strings缓冲区是否安全?

  22. 22

    std :: cin:清空输入缓冲区而不会阻塞

  23. 23

    如何保存和恢复std :: istringstream的缓冲区?

  24. 24

    用Python解压缩缓冲区?

  25. 25

    用熊猫创建缓冲区时发生内存泄漏?

  26. 26

    C ++用libzpaq压缩到char *缓冲区

  27. 27

    用C#BinaryWriter缓冲区发送段?

  28. 28

    read()用多余的字符填充缓冲区

  29. 29

    未能刷新缓冲区。没有缓冲区可以用 ob_end_flush() 方法刷新

热门标签

归档