【发布时间】:2019-09-14 02:50:14
【问题描述】:
我的程序将读取包含 N 行的输入数据。每行包含将分配给单个对象的数据。由于所需的对象数量将在运行时确定,因此我计划在堆上为它们分配空间。
我想包含一个指向这些对象的指针向量。我的第一种方法是使用一个循环运行 N 次,并分配空间,
Customer* cust_i = new Customer
然后使用customer_vector.push_back(cust_i) 填充向量。
看起来很笨拙,并且鉴于我不太了解 C++ 中的动态内存分配,我将不胜感激以更好的方式解决此问题的任何建议。
谢谢。
【问题讨论】:
-
你考虑过
vector<Customer>而不是vector<Customer*>吗? -
指针使用的原因是什么?为什么不简单地
std::vector<Customer> customer_vector;然后customer_vector.push_back(Customer());?根本没有使用指针。 -
感谢您的反馈。连同下面公认的答案,这有助于我更好地理解向量数据结构。