c++ - 如何在不使用 std::vectors 的情况下使用运算符 -= 从动态分配的对象数组中删除元素?

标签 c++ class object dynamic-allocation

重载运算符 -=:

RentACar& operator-=(const Automobile& av)

在 RentACar 中,我有一个动态分配的 Automobile *a 数组

所以假设如果任何 a 具有与 av.brand 相同的 a.brand 那么应该删除 a 并分配为一个对象释放的内存。

我以为……就像如果它没有找到一个具有相同品牌的对象它返回 *this,但如果它找到了,它为一个新的汽车数组分配空间,大小为 a-1,分配对象,跳过具有相同品牌的对象,但是我不知道怎么写。

我不知道如何用 vector 写作并推迟,无论如何,我为考试而学习,我们出于任何原因从未使用过 vector ,所以我不能在考试中使用它们,所以即使它我也必须这样做是一个愚蠢的实现!

谢谢!

最佳答案

首先,您必须找到要删除的对象: std::find_if 对此很有用,但如果是类作业,它们 可能期望您编写自己的线性实现 搜索。找到条目后,您可以删除指针, 并将其设置为 null(并确保所有其他逻辑都有效 当数组中有空指针时正确),或者移位 以下所有条目向下一项。 (std::copy 可以是 用于换类。)当然,如果你换类,你也会有 跟踪数组中有效条目的结束位置。

当 删除对象。只需跟踪的逻辑结束 大批。

关于c++ - 如何在不使用 std::vectors 的情况下使用运算符 -= 从动态分配的对象数组中删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508963/

相关文章:

c# - 在 C++ IDL 中定义结构,然后在 C# 中适本地定义 MarshalAs()

c++ - 从函数指针静态推断标准 C++98 中的函数类型参数

c++ - 在 C++ 中重写类的层次结构

Javascript 数组和对象/类

ios - Objective-C 中的不完整实现警告

c++ - 添加自定义 TensorFlow OP

c++ - 在各种函数中使用 push_back 更新类对象的 vector

c++ - 在类定义中使用自定义结构

php - 什么是 PHP 中的异常,什么是 try 和 catch?

javascript - 检查对象键是否为空数组或检查它是否具有自己的属性