使用 C 11 范围循环迭代和修改向量
使用 C 11 基于范围的 for 循环遍历向量时,会出现一个常见问题:您可以在其中删除某个项目吗?循环?
基于范围的 For 循环的局限性
答案是否定的,因为基于范围的 for 循环设计用于一次访问容器的每个元素。如果需要修改容器、删除元素或执行非线性迭代,则应使用传统的 for 循环。
使用传统循环修改向量
要在迭代时从向量中删除项目,可以使用传统的 for循环:
for (auto it = inv.begin(); it != inv.end(); ++it) { // Do some stuff if (blah) { it = inv.erase(it); --it; // Decrement iterator to avoid skipping an element } }
传统循环的优点
传统循环比基于范围的 for 循环提供更多灵活性:
以上是使用基于范围的 For 循环时可以从 C 向量中删除元素吗?的详细内容。更多信息请关注PHP中文网其他相关文章!