map 与lambda表达式合用
时间: 2024-05-27 07:06:05 浏览: 157
Python lambda表达式filter、map、reduce函数用法解析
map是STL中的一种关联容器,它提供了一种键值对的映射关系。lambda表达式是C++11中引入的一种匿名函数,可以方便地定义一个简单的函数对象。map和lambda表达式可以相互配合使用,例如可以用lambda表达式作为map的比较函数,也可以用lambda表达式来对map进行遍历和操作。
下面是一个使用lambda表达式对map进行遍历和操作的示例代码:
```c++
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string> m{{1, "one"}, {2, "two"}, {3, "three"}};
// 遍历map并输出键值对
cout << "遍历map并输出键值对:" << endl;
for_each(m.begin(), m.end(), [](pair<int, string> p) {
cout << p.first << ": " << p.second << endl;
});
// 使用lambda表达式对map中的值进行修改
cout << "使用lambda表达式对map中的值进行修改:" << endl;
for_each(m.begin(), m.end(), [](pair<int, string>& p) {
p.second += "_new";
});
// 再次遍历map并输出键值对
cout << "再次遍历map并输出键值对:" << endl;
for_each(m.begin(), m.end(), [](pair<int, string> p) {
cout << p.first << ": " << p.second << endl;
});
return 0;
}
```
这段代码中使用了for_each算法和lambda表达式来遍历map,并对其中的值进行修改。需要注意的是,在修改值时要将pair对象传递给lambda表达式的引用参数,否则修改操作不会生效。
阅读全文