c++ - 在运行时将指针推送到 vector C++

标签 c++ pointers vector

我的程序将读取包含 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/

相关文章:

c - 将 char 数组作为参数传递

c++ - 指针和引用 + 重载运算符

c++ - std::vector::front() 用于什么?

python - cython 中的关键部分

java - C++ OpenGL - 获取对象的世界坐标(碰撞检测需要)

c - 二维数组是否需要事先知道它在 C 中的大小?

c++ - 查找数组中具有最小位置的最大元素

c++ - 同时读取和写入 vector 导致异常

c++ - 用类继承打扰自己,需要一些指导

c++ - 使用getline c++将每一行输入存储在一个数组中