如何使用指针用对象填充矢量

how to fill a vector with objects using pointers

本文关键字:填充 对象 何使用 指针      更新时间:2023-10-16

我有一个作业,我必须创建一个向量并用对象填充它。我找到了这个代码:

Vehicle * v = NULL;
vector<Vehicle*> *highway;
highway = new vector<Vehicle*>;

我理解第一行,它创建了一个名为 v 的指针,该指针为空并指向对象Vehicle

您能否向我解释其他 2 行的工作原理以及为什么在创建向量时使用指针?

以下是逐行的简要说明:

Vehicle * v = NULL;

定义类型为 Vehicle 的指针v并将其初始化为 NULL

vector<Vehicle*> *highway;

定义类型为 vector<Vehicle*> 的指针highway

highway = new vector<Vehicle*>;

动态分配vector<Vehicle*>并将其分配给向量highway

看看 std::vector,确保你明白为什么最后两行没有多大意义。

现在,回答这个问题:

如何使用指针用对象填充向量?

要填充动态分配的向量,您可以编写:

highway->push_back(Vehicle_Element);    

第一行:创建类型为"车辆"的指针。它不指向对象,因为它是 NULL。它什么也没指向。您必须创建一个对象,例如:

Vehicle* v = new Vehicle;
第二行:

与第一行相同的结构:创建类型为"vector"的指针。现在它没有指向任何地方。如果您创建(参见第三行)它,则您有一个指向矢量的指针,该矢量具有指向车辆对象的指针。

第三行:使用此行创建矢量指针。