用单个关键字实现数组的删除很难吗?是不是效率比较低?
首先,让我总结一下两者的作用:delete
调用析构函数one对象并释放内存;delete[]
调用析构函数some对象数量并释放内存。
人们可以将它们折叠到同一个操作中:“调用some对象数量并释放内存。”。毕竟one is some number.
Both delete
and delete[]
对指针进行操作。像这个:
foo* ptr;
仔细看看。并告诉我当我们delete
它。你不能。编译器也不能。这只能在运行时知道。必须存储有关对象数量的信息某处。这意味着,对于每次使用new[]
,分配了一些额外的内存来跟踪该数字。
C++ 建立在“不用为不使用的东西付费”的原则之上,这就是非数组形式存在的原因:因为delete
总是只删除一个对象,new
不需要分配任何额外的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)