0
我想知道什么是要完成这样的事情最好的办法......传递一个迭代到另一个功能
// Iterating through a list
if (foo) {
RemoveBar(it);
}
void RemoveBar(std::list<Type>::iterator it) {
it = listName.erase(it);
...// Other stuff related to cleaning up the removed iterator
}
我不认为按值传递将在这里工作。显然,当我调用RemoveBar时,我想要做的就是保持正确的迭代器位置。是通过参考最好的选择?
这是最初的意图,但我更喜欢当函数名称揭示他们的意图是什么,RemoveX并没有透露它将返回一个迭代器,而RemoveXAndGetX是meh,但由于它是一个私有函数,我想我可以稍微弯曲可读性规则。 – Anonymous 2009-12-06 20:56:17
意味着你认为printf()应该真的被称为print_and_return_number_of_characters_output()的Dores--没有多少人会同意,我认为:-) – 2009-12-06 21:00:32