【发布时间】:2016-07-08 15:38:34
【问题描述】:
我有一个向量:
std::vector<std::unique_ptr<MyAbstract>> myList;
我想循环访问成员“id”并删除特定项目:
for (auto it = myList.begin(); it != myList.end();)
{
if (it->id == 2)
{
it = myList.erase(it);
break;
}
else
++it;
}
这一行……
if (it->id == 2)
给我一个错误:
'class std::unique_ptr' 没有名为 'id' 的成员
这似乎有效:
if (it->get()->id == 2)
不知道为什么?!这是完整的代码: http://ideone.com/kFohfA
【问题讨论】:
标签: c++ c++11 stdvector unique-ptr