3

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

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

}
4

1 回答 1

23

您不能复制唯一指针,因为......好吧,它们是唯一的

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

for (auto & item : *v)
//       ^^^
于 2013-09-12T23:01:00.970 回答