c++ - 删除动态分配的类数组
问题描述
如何删除动态分配的数组产品?
Z2* prod = new Z2[new_degree];
班级:
class Z2 {
public:
Z2() { modulo = 0; };
Z2(short int a) { if (a > 0) modulo = a % 2; else modulo = -a % 2; };
private:
int modulo;
编辑:我只能使用这个:
<iostream>,
<sstream>,
<string>,
<cstdlib>
<cstring>
解决方案
在所有版本的C++中,您执行以下操作:
#include <vector>
std::vector<Z2> prod(new_degree);
如果由于某种原因您不能使用std::vector
,那么从 C++11 开始就有std::unique_ptr
(或std::shared_ptr
)。
#include <memory>
auto prod = std::make_unique<Z2[]>(new_degreee);
这些中的任何一个都将管理完全prod
移交给了 C++;您不再需要担心何时(或如何)释放prod
.
推荐阅读
- python-3.x - 运行导入的 Flask 应用程序时出现 ModuleNotFoundError
- python-2.7 - Pymongo 返回所有文档,包括 objectID
- tfs - 升级到 TFS 2018 时出错
- javafx - TableView 仅修改每个单元格的样式
- bluej - 当我尝试在 Bluej 中创建一个小型视频游戏时,我应该从哪里开始?
- git - 无法在 ubuntu 虚拟机上安装 git
- encryption - 为什么 gpg --encrypt 失败,子密钥包的密钥标志为 0x0C,永不过期?
- angularjs - AngularJS 部署到 Netlify
- python - 创建组时 discord.py 给出 AttributeError
- asp.net-mvc - MVC - 无法使用隐藏字段将值传递回控制器