删除列表中的第n个元素

时间:2018-10-29 14:02:37

标签: c++

要删除列表的第i个元素,我目前正在使用以下语法:

std::list<int> remaining{1,2,3,4,5};

auto it = remaining.begin();
advance(it, i);
remaining.erase(it);

是否有较简单的方法来实现这一目标?同样,对于插入,以下是我遵循的语法。还能不那么冗长吗?

it = remaining.begin();
advance(it, i);
remaining.insert(it, el);

1 个答案:

答案 0 :(得分:5)

您可以使用std::next。您的清除通话将会是

remaining.erase(std::next(remaining.begin(), i));

您的插入呼叫将是

remaining.insert(std::next(remaining.begin(), i), el);