在现代 C++ 中处理中等大小的字节数组的正确方法是什么?

Tam*_*lei 2 c++ c++11

许多语言和框架提供“字节数组”类型,但 C++ 标准库没有。什么类型适合用于中等大小的1、可调整大小的字节数组,我如何有效地使用该类型?(特别是:分配、作为参数传递和销毁)


1:中型是指小于 100 MB。

Naw*_*waz 5

您可以使用std::vector<unsigned char>, 或按照@Oli 的建议使用std::vector<uint8_t>。是的,您可以绕过它,而无需复制整个内容。

void f(std::vector<unsigned char> & byteArray) //pass by reference : no copy!
{
     //
}

std::vector<unsigned char>  byteArray;
//...
f(byteArray); //no copying is being made!
Run Code Online (Sandbox Code Playgroud)

  • 不挑剔基于(错误的)假设怎么样?我问这个问题是为了学习而不是为了特定的程序。请客气点 (3认同)
  • @Tamás :(N)RVO 使这不是问题。 (2认同)