c++ - 删除列表中的第 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);
解决方案
您可以使用std::next
. 您的擦除呼叫将是
remaining.erase(std::next(remaining.begin(), i));
你的插入电话将是
remaining.insert(std::next(remaining.begin(), i), el);
推荐阅读
- android-studio - 在 Android Studio 的外部库中禁用方法的警告 lint
- html - HTML:两行文本居中垂直对齐
- python-3.x - 无法在 Pandas 中塑造数据
- android - Android如何知道它必须将允许的vpn应用程序引导到tun0
- assembly - lui MIPS的故障
- java - 使用 JPA 创建和查询表 - 如何返回多行?
- javascript - bootstrap 4 通过 javascript 崩溃
- sqlite - SQLite 连接字符串不起作用。在“||”附近给出:语法错误
- php - I get parse error code within my php code
- sql - 加快将 XML 文件插入 SQL Server 表的速度