【发布时间】:2017-10-20 18:43:38
【问题描述】:
如果我有一个 std::vector 或 std::unique_ptr 并调整它的大小,并想按索引添加元素,使用 operator= 添加它们的最佳方法是什么?
std::vector<std::unique_ptr<item>> _v;
_v.resize(100);
// is it safe to use the assignment operator?
_v[20] = new item;
【问题讨论】:
-
你觉得选择的方式有很多吗?
-
大多数教程都在讨论如何使用 unique_ptr 以及如何避免只是确保 = 运算符没有缺点。
-
注意前面的下划线。它们通常保留供库实现使用。方便阅读:What are the rules about using an underscore in a C++ identifier?
-
@MoradMohammad 如答案中所述,以您在示例中显示的方式使用赋值运算符存在一个缺点:it doesn't compile。