tcb*_*tcb 2 c++ vector c++11 visual-studio-2013
我有一个功能foo,需要一个std::vector<char>作为参数,调用另一个函数bar,需要一个std::shared_ptr<char>作为参数.
void foo(std::vector<char> arg)
{
bar(?) // what do i pass to bar here?
}
void bar(std::shared_ptr<char> arg)
{
// do something asynchronously
}
Run Code Online (Sandbox Code Playgroud)
如何将向量的基础数组的所有权转移到shared_ptr?
向量很大(4MB),所以我想避免从向量复制到另一个char数组.
你不能.除了将矢量移动到另一个矢量之外,没有办法释放矢量对其内存的所有权.
如果您可以修改bar以采取std::vector<char>,那么您可以通过移动向量来转移所有权,而无需复制它.
| 归档时间: |
|
| 查看次数: |
628 次 |
| 最近记录: |