C++ C++;良好实践:让用户传递指针或在类本身中分配资源

C++ C++;良好实践:让用户传递指针或在类本身中分配资源,c++,pointers,memory-management,raii,C++,Pointers,Memory Management,Raii,对不起,我不知道如何正确表达我的问题。我有一个类,它根据某种算法生成数组。数组长度可能会有所不同,因此我希望动态分配数组。当然,调用方希望使用getter访问该数组,我在其中返回对该数组的引用。我的问题: 如果我让用户分配/取消分配资源并让他将资源传递给我的类并执行此操作,或者我会处理分配/取消分配(RAII)以防止内存泄漏,那么是否有规则或良好做法 感谢您的帮助 使用std::vector消除了所有的担忧。我同意@101010为什么你觉得需要使用数组?@101010vector是让函数进行分配

对不起,我不知道如何正确表达我的问题。我有一个类,它根据某种算法生成数组。数组长度可能会有所不同,因此我希望动态分配数组。当然,调用方希望使用getter访问该数组,我在其中返回对该数组的引用。我的问题:

如果我让用户分配/取消分配资源并让他将资源传递给我的类并执行此操作,或者我会处理分配/取消分配(RAII)以防止内存泄漏,那么是否有规则或良好做法


感谢您的帮助

使用
std::vector
消除了所有的担忧。我同意@101010为什么你觉得需要使用数组?@101010
vector
是让函数进行分配的一种形式。不想使用向量(或想使用非标准分配器的向量)的人将无法使用该函数。如果可能,请使用该向量。如果类生成了数据,然后不关心它,那么返回向量,让copy elision或std::move处理复制成本。如果类生成数据,然后在游戏中有一些皮肤,考虑让类保持总所有权。不要让用户触摸数据存储。不要向他们提及整件事。让类实现
操作符[]
,并提供迭代器,以便用户可以像使用数组一样使用该类。@M.M OP说“我有一个类,它确实根据某个算法生成数组。”(即,类对象是所有者),自定义分配器适用于哪里?