我的程序将读取包含 N 行的输入数据。每行包含将分配给单个对象的数据。由于需要的对象数量会在运行时确定,所以我打算在堆上为它们分配空间。
我想包含一个指向这些对象的指针 vector 。我的第一个方法是使用循环运行 N 次,并分配空间,
客户* cust_i = 新客户
然后使用 customer_vector.push_back(cust_i)
填充 vector 。
看起来很笨拙,鉴于我不太了解 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" );
关于c++ - 在运行时将指针推送到 vector C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57932085/