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&)’
私が間違っているのは何を?あなたはどのoveralコンテナにvol
に消去呼び出すようにしようとしている
おかげネイサン。 1つではなく3つ目の要素のすべてを削除する必要がある場合はどうすればよいですか? –
@ em.ech 'col'がクリアされることを表すベクトル全体を欲しければ' col-> clear(); 'だけが必要です。 – NathanOliver