【发布时间】:2013-03-20 03:19:00
【问题描述】:
我正在定义一个使用列表类的模板类的函数。
我在这个列表类中定义了擦除函数,如果擦除成功则返回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();
}
}
非常感谢。
【问题讨论】:
-
您似乎忘记了
[python]标签(还有[c#]以防万一)。 -
是什么语言?
-
好像是C++(“模板类”)
-
这有点难以理解,但您只是在问
if语句中的条件表达式是否被执行?怎么可能没有? -
无论使用哪种语言,任何容器的大小都应该是属于该容器的可查询属性。不得不刻意维护它听起来不是一个好的设计。
标签: c++ if-statement boolean