首页 > 解决方案 > 删除列表中的第 n 个元素

问题描述

要删除列表的第 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);

标签: c++

解决方案


您可以使用std::next. 您的擦除呼叫将是

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

你的插入电话将是

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

推荐阅读