如何在不使用std::vectors的情况下,使用运算符==从动态分配的对象数组中删除元素
How to remove an element from a dynamically allocated array of objects with operator -= without using std::vectors?
重载运算符-=:
RentACar& operator-=(const Automobile& av)
在RentACar中,我有一个动态分配的汽车阵列*
因此,假设任何一个a
具有与av.brand
相同的a.brand
,那么应该删除a,并为一个对象释放分配的内存。
我想,如果它没有找到相同品牌的对象,它会返回*这个,但如果它找到了,它会为a-1大小的新汽车阵列分配空间,分配的对象,跳过相同品牌的,但我不知道如何写。
我不知道如何使用矢量进行书写和推回,无论如何,我为考试而学习,无论出于何种原因,我们从未使用过矢量,所以我不能在考试中使用它们,所以我必须这样做,即使这是一个愚蠢的实现!
谢谢!
首先,您必须找到要删除的对象:std::find_if
对此很好,但如果是课堂作业,它们可能希望您编写自己的线性实现搜索找到条目后,delete
指针,并将其设置为null(并确保所有其他逻辑都工作当数组中有空指针时正确),或移位下面的所有条目都向下一个。(std::copy
可以是用于轮班。)当然,如果你换了,你也会以跟踪数组中有效条目的结束位置。
当删除对象。只需跟踪大堆
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 在c++中使用动态分配的问题
- 访问动态分配列表中的元素
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素
- c++ 使用动态分配运算符反向数组元素
- 我正在丢失动态分配的数组中的元素
- 通过动态分配插入列表元素
- 使用动态分配创建数组并将元素插入其中
- STL和元素插入中列表的动态分配
- 动态分配的结构阵列具有动态分配的结构阵列元素
- C++如何编写一个函数来检查元素是否存在于动态分配的数组中
- C++如何确定元素是否存在于动态分配的数组中
- 检查动态分配的数组C++中是否存在元素
- 循环访问映射并删除动态分配的元素
- 如何初始化vlaue,并将其逐个元素动态分配给数组
- 如何在不使用std::vectors的情况下,使用运算符==从动态分配的对象数组中删除元素
- 如何从动态分配的数组中删除元素
- 每次在std::list容器中插入元素时,都会执行动态分配
- 将元素推送到动态分配的指针数组int C++