在运行时C++将指针推送到矢量

Push pointers to vector at runtime C++

本文关键字:指针 运行时 C++      更新时间:2023-10-16

我的程序将读取包含N行的输入数据。每行包含将分配给单个对象的数据。由于所需的对象数将在运行时确定,因此我计划在堆上为它们分配空间。

我想包含指向这些对象的指针向量。我的第一个方法是使用一个运行 N 次的循环,并分配空间,

Customer* cust_i = new Customer

然后使用customer_vector.push_back(cust_i)填充矢量。

看起来很笨拙,鉴于我不了解动态内存分配C++,我将不胜感激任何更好的方法来解决这个问题的建议。

谢谢。

您实际上不需要存储指向Customer
的指针 由于 vector 已经是一个动态容器,您可以这样做

std::vector<Customer> customer_vec;
// read file
// ...
// example assuming Customer has a constructor taking 2 strings
customer_vec.emplace_back( "foo", "bar" );