c++ - 在运行时将指针推送到向量 C++
问题描述
我的程序将读取包含 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" );
推荐阅读
- mongodb - Mongodb查找ID数组
- sql - 多个条件下的 JPA in 子句
- javascript - 在 $.ajax 调用中构建 jquery url
- ffi - 使用 idris 绑定到 c 结构的抽象类型
- c# - C# Word Interop 格式化段落行距仅影响最后一行
- single-sign-on - MSAL 与 Azure AD B2C 和单一登录
- mysql - MySQL 中 TIMESTAMP 的确切最大值是多少?
- asp.net - ASP.Net - 当 URL 字符串中存在字符“&”时,HTTP 到 HTTPS 重写模块不起作用
- spring-boot - Spring boot RedisTemplate 配置集群写入对象很慢,如果单机很快,为什么?
- java - Java 等价于 SecureString