vector vs unique_ptr 到 c 风格的函数

vector vs unique_ptr to c style function

当我与 c 风格的函数交互时,我应该使用哪种风格。

我确实计划在数据从 c 函数返回后将其存储在向量中。一个比另一个有什么优势?

{
  auto test = std::make_unique<double[]>(10);
  fooCstyle(test);
}

{
  auto test = std::vector<double>;
  test.reserve(10);
  fooCstyle(test);
}

在这种情况下,这没有区别,这取决于您稍后要在 cpp 样式代码中对该数据执行的操作。

但是你的例子是错误的,它应该是这样的:

std::vector<char> buffer(10);
cstyle(buffer.data());

std::unique_ptr<char[]> test { new char[10] };
cstyle(test.get());