跳过unordered_map的第一次迭代

麻将

在与的for循环中auto,迭代器在上迭代unordered_map像这样:

using RuleIndex = std::unordered_map<uint, Symbol*>;
RuleIndex rule_index;
for(const auto & rule_pair : rule_index ) {
   std::cout << rule_pair.first << ": ";
   printList(rule_pair.second, 0);
   std::cout << std::endl;
}

假设所有代码都正确定义,因为代码可以正常工作。我的问题是,如何排除第一次迭代?例如,该映射包含3行,并且当前循环迭代0、1、2。我只想迭代1和2。

TC
bool is_first_iteration = true;
for(const auto & rule_pair : rule_index) {
   if (std::exchange(is_first_iteration, false)) continue;
   std::cout << rule_pair.first << ": ";
   printList(rule_pair.second, 0);
   std::cout << std::endl;
}

std::exchange调用将分配falseis_first_iteration并返回先前的值。这实际上是针对C ++ 14提出的论文中std::exchange讨论的用例之一该论文还显示了一个参考实现,如果您对C ++ 11感到困惑,可以使用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

cin.getline()跳过第一次迭代

来自分类Dev

在forEach循环中跳过第一次迭代

来自分类Dev

HTTPAsyncClient第一次跳过

来自分类Dev

广度第一次迭代?

来自分类Dev

广度第一次迭代?

来自分类Dev

Java while 循环跳过用户输入的第一次迭代

来自分类Dev

跳过第一次机会例外

来自分类Dev

ngShow上的动画第一次跳过

来自分类Dev

Android-如何跳过第一次活动

来自分类Dev

无法使用 continue 语句跳过 foreach-object 中的第一次迭代。请建议

来自分类Dev

在循环的第一次迭代中添加值

来自分类Dev

如何离开第一次迭代元素?

来自分类Dev

检查地图是否第一次迭代的方法

来自分类Dev

LAPACK函数在第一次迭代后变慢

来自分类Dev

AutoHotKey SetTimer立即第一次迭代

来自分类Dev

如何离开第一次迭代元素?

来自分类Dev

第一次迭代后中断循环

来自分类Dev

为什么在第一次迭代后就停止了?

来自分类Dev

对于每个仅返回第一次迭代

来自分类Dev

for循环仅在第一次迭代时执行

来自分类Dev

我循环只经过第一次迭代

来自分类Dev

While 循环在第一次迭代后中断

来自分类Dev

For 循环在第一次迭代后结束

来自分类Dev

一次忽略“下标超出范围”错误,以处理第一次迭代

来自分类Dev

2个fget,一个接一个,第一次被跳过

来自分类Dev

For循环正在更改迭代器,并在第一次迭代后停止

来自分类Dev

Async.foreach迭代强制停止直到执行第一次迭代

来自分类Dev

Return 语句打印第一次迭代,而 Print 输出所有迭代 - Python

来自分类Dev

数据在第一次迭代中打印两次