c++ - C ++中的动态对象与非动态对象
问题描述
您何时想使用动态分配的对象,例如https://leetcode.com/problems/design-twitter/,
- 你的 Twitter 对象将被实例化并被调用:
- 推特* obj = 新推特();
- obj->postTweet(userId,tweetId);
- 矢量参数_2 = obj->getNewsFeed(userId);
- obj->follow(followerId,followeeId);
- obj->取消关注(followerId,followeeId);
[即指向新对象的指针]
或(静态?)对象,例如https://leetcode.com/problems/flatten-nested-list-iterator/:
- 您的 NestedIterator 对象将被实例化并按如下方式调用:
- NestedIterator i(nestedList);
- while (i.hasNext()) cout << i.next();
[即标准对象初始化]
解决方案
如果您事先不知道需要多少对象,或者是否需要在用户之间共享对象实例,您通常会动态分配对象。作为旁注,切勿使用new
orstd::unique_ptr
代替std::shared_ptr
。
推荐阅读
- python - 带有预定义映射然后索引文档的 Elasticsearch 问题
- bash - 用户切换命令后未执行 Bash 脚本命令
- java - 从接口和方法创建一个类以将对象用作字符串
- c# - 创建进程时隐藏所有子进程
- python - 为什么 tf.random.log_uniform_candidate_sampler 提供真正的课程?
- php - 如何在 Magento 中导入具有变体的多个产品?
- database - PostgreSQL 向表中插入随机值并避免相同类型的行重复
- javascript - 在 React Native 应用程序中,启动画面仍然没有首先加载
- ios - 当我使用具有多个 url 的完成处理程序时,我的错误在哪里?
- python - 从 datetime.timedelta 对象中删除“x 天”