c – 如何使用指向内部数据的指针复制结构(以便复制指向它们的指
发布时间:2020-12-16 10:28:43 所属栏目:百科 来源:网络整理
导读:所以我有一个类似的结构 struct GetResultStructure{ int length; char* ptr;}; 我需要一种方法来制作它的完整副本,这意味着我需要一个副本,以便在原始结构中具有新的ptr指向的数据副本.有可能吗?我的意思是我拥有的任何包含ptrs的结构都会有一些字段的长度
所以我有一个类似的结构
struct GetResultStructure { int length; char* ptr; }; 我需要一种方法来制作它的完整副本,这意味着我需要一个副本,以便在原始结构中具有新的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 通常,当您需要自己实现时,可以通过实现复制构造函数和复制赋值运算符来实现.最简单的方法是使用复制和交换习语,在What is the copy-and-swap idiom?中详细介绍 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |