lamda表达式遍历map
时间: 2024-05-24 15:08:25 浏览: 202
Lambda表达式是一种匿名函数,可以用于定义简单的函数或操作。在C++11中,Lambda表达式被引入到了C++中,并且广泛用于STL中。
在遍历map时,可以使用Lambda表达式来遍历map中的键值对。以下是一个示例代码:
```
#include <iostream>
#include <map>
int main()
{
std::map<int, std::string> myMap;
myMap = "one";
myMap = "two";
myMap = "three";
std::cout << "Using Lambda expression to traverse map" << std::endl;
std::for_each(myMap.begin(), myMap.end(), [](const std::pair<int, std::string>& p) {
std::cout << "Key: " << p.first << ", Value: " << p.second << std::endl;
});
return 0;
}
```
上述代码中,`std::for_each()`算法函数接受一个起始位置和一个结束位置,并对指定的范围内的元素执行操作。在这里,我们使用Lambda表达式来打印每个键值对的键和值。
相关问题
lamda表达式遍历map时怎么继续循环
在使用 Lambda 表达式遍历 Map 的时候,如果需要在某个条件下继续循环,可以使用 `continue` 关键字来实现。Lambda 表达式中的 `continue` 关键字会直接跳过当前元素的处理,继续下一次循环。
下面是一个使用 Lambda 表达式遍历 Map 并继续循环的示例代码:
```java
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
map.forEach((key, value) -> {
if (value == 2) {
// 满足条件时,跳过当前元素,继续下一次循环
return;
}
System.out.println(key + ": " + value);
});
```
在上述代码中,使用 `forEach()` 方法遍历 Map,Lambda 表达式中的 if 语句判断了 value 是否等于 2。如果满足条件,就会执行 `return` 跳过当前元素的处理,继续下一次循环。如果不满足条件,则会执行打印语句。
运行上述代码,输出结果为:
```
A: 1
C: 3
```
可以看到,在满足条件 value 等于 2 的情况下,跳过了 key 为 "B" 的元素,继续循环处理其他元素。
需要注意的是,在 Lambda 表达式中使用 `continue` 只能跳过当前元素,无法直接跳出循环。如果需要跳出循环,可以考虑使用传统的 for 循环或者使用其他控制流语句来实现。
阅读全文