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());
当我与 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());