gpt4 book ai didi

c++ - 如何复制带有指向内部数据的指针的结构(以便复制指针和它们指向的数据)?

转载 作者:太空狗 更新时间:2023-10-29 19:44:45 30 4
gpt4 key购买 nike

所以我有这样的结构

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

通常,当您确实需要自己实现时,您可以通过实现复制构造函数和复制赋值运算符来实现。最简单的方法是使用 copy-and-swap 习惯用法,在 What is the copy-and-swap idiom? 中有详细介绍。

关于c++ - 如何复制带有指向内部数据的指针的结构(以便复制指针和它们指向的数据)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4848083/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com