循环访问unique_ptrs向量的unique_ptr

Iterating through a unique_ptr of a vector of unique_ptrs

本文关键字:unique ptr 向量 ptrs 循环 访问      更新时间:2023-10-16

如果向量没有unique_ptrs或者我没有向量unique_ptr(并且不要取消引用),它可以工作,但两者都会导致编译错误。我不确定发生了什么。

auto v = std::make_unique<std::vector<std::unique_ptr<int>>>();
for (auto item : *v)
{
}

您无法复制唯一的指针,因为...嗯,它们是独一无二的

您应该通过引用进行迭代:

for (auto & item : *v)
//       ^^^