将迭代器传递给另一个函数

时间:2009-12-06 20:51:07

标签: c++ iterator

我想知道这样做最好的方法是什么......

// 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时保持正确的迭代器位置。通过引用是最好的选择吗?

1 个答案:

答案 0 :(得分:5)

迭代器通常按值传递。我让RemoveBar()返回新的迭代器。