我试图使用iterator
从3D向量中删除一些旧数据。下面是一段我的代码,与此相关的:从多维向量中删除元素
vector< vector<vector <int> > > vol;
vector< vector< vector<int> > >::iterator row;
vector< vector<int> >::iterator col;
vector<int>::iterator dep;
for (row = this->vol.begin(); row != this->vol.end(); ++row)
{
for (col = row->begin(); col != row->end(); ++col)
{
for (dep = col->begin(); dep != col->end(); ++dep)
{
if (*dep <= date - 10) {
dep = this->vol.erase(dep);
}
}
}
,但我得到的编译器错误:
no matching function for call to ‘std::vector<std::vector<std::vector<int> > >::erase(std::vector<int>::iterator&)’
我在做什么错?
谢谢
感谢弥敦道。如果我需要删除第三维中的所有元素而不是一个? –
@ em.ech如果你想让'col'表示的整个向量清零,那么你只需要'col-> clear();'。 – NathanOliver