Я пытаюсь стереть некоторые старые данные из 3D-вектора, используя iterator
. Вот часть моего кода, связанные с этим:стирание элементов из многомерного вектора
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