所以我有一个像这样的结构
struct GetResultStructure
{
int length;
char* ptr;
};
我需要一种方法来制作它的完整副本,这意味着我需要一个副本来拥有一个结构,其中新的 ptr 指向我在原始结构中拥有的数据副本。这怎么可能?我的意思是我拥有的包含ptrs的任何结构都会有一些带有其长度的字段我需要一个函数来复制我的结构,以给定的长度数组来复制它们指向的所有ptrs和数据......有什么很酷的boost函数吗?或者有什么方法可以创建这样的功能吗?
对于您描述的特定场景,请使用std::vector
或一些其他序列容器。如果这样做,那么只需复制类型的对象GetResultStructure
也会复制指向的数据:
struct GetResultStructure {
std::vector<char> data;
};
GetResultStructure a = GetData();
GetResultStructure b = a; // a and b have distinct, equivalent data vectors
一般来说,当您确实需要自己实现这一点时,可以通过实现复制构造函数和复制赋值运算符来实现。最简单的方法是使用复制和交换习惯用法,在什么是复制和交换习语? https://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)