リスト クラスを使用するテンプレート クラスの関数を定義しています。
このリスト クラスに erase 関数を定義しました。この関数は、消去が成功した場合は true を返し、消去が失敗した場合は false を返します。ここで行う必要があるのは、この関数を呼び出すことだけです。
ただし、リストのサイズ n をカウントする必要があり、list.erase(itr.list_iter) 呼び出しが true を返す場合にのみそれをデクリメントしたいと考えています。
もっと簡潔に言えば、次のコード行は list.erase(itr.list_iter) 関数を呼び出し、n をデクリメントし、成功した場合にのみ refresh() を呼び出しますか? それとも、実際にはリスト内の要素を消去しませんか?
void erase(iterator itr) {
if(list.erase(itr.list_iter)) {
--n;
refresh();
}
}
どうもありがとうございました。