Rel*_*lla 3 c++ memory boost data-structures
所以我有一个类似的结构
struct GetResultStructure
{
int length;
char* ptr;
};
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来制作它的完整副本,这意味着我需要一个副本,以便在原始结构中具有新的ptr指向的数据副本.有可能吗?我的意思是我所拥有的任何包含ptrs的结构都会有一些字段,其长度我需要一个函数来复制我的结构,通过给定的长度数组来处理所有ptrs和数据...任何很酷的增强函数吗?或者任何方式如何创建这样的功能?
对于您描述的特定方案,请使用一个std::vector或其他序列容器.如果这样做,那么简单地复制类型的对象GetResultStructure也会复制指向的数据:
struct GetResultStructure {
std::vector<char> data;
};
GetResultStructure a = GetData();
GetResultStructure b = a; // a and b have distinct, equivalent data vectors
Run Code Online (Sandbox Code Playgroud)
通常,当您需要自己实现时,可以通过实现复制构造函数和复制赋值运算符来实现.最简单的方法是使用复制和交换习惯用法,详细介绍了什么是复制和交换习惯用法?