首页 > 解决方案 > 在运行时将指针推送到向量 C++

问题描述

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

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

Customer* cust_i = new Customer

然后用于customer_vector.push_back(cust_i)填充向量。

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

谢谢。

标签: c++pointersvector

解决方案


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

std::vector<Customer> customer_vec;

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

推荐阅读