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