首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

for_each(,[](stringmap:value_type& x){cout<<" "<< x.se

2012-06-01 
for_each(,,[](stringmap::value_type& x){cout x.second}) 这个用法没看明白hi,大家好代码如下:h

for_each(,,[](stringmap::value_type& x){cout<<" "<< x.second;}) 这个用法没看明白
hi,大家好
代码如下:
http://www.cplusplus.com/reference/stl/unordered_multimap/equal_range/
// unordered_multimap::equal_range
#include <iostream>
#include <string>
#include <unordered_map>
#include <algorithm>

typedef std::unordered_multimap<std::string,std::string> stringmap;

int main ()
{
  stringmap myumm = {
  {"orange","FL"},
  {"strawberry","LA"},
  {"strawberry","OK"},
  {"pumpkin","NH"}
  };

  std::cout << "Entries with strawberry:";
  auto range = myumm.equal_range("strawberry");
  for_each (
  range.first,
  range.second,
  [](stringmap::value_type& x){std::cout << " " << x.second;}//这个用法没看明白,请高手解释一下吧
  );

  return 0;
}

[解决办法]
[](stringmap::value_type& x){std::cout << " " << x.second;}
[]用于捕获函数外的变量,空表示不捕获,=表示捕获所有,&表示引用捕获()里面是函数参数声明,如果函数有复杂返回值,则在参数后面添加“->返回值类型”,{}是函数体,如果函数有简单返回值,可以直接使用return语句。
for_each函数第三个参数是函数指针,也即遍历的方式,在这里,直接输出map的第二项。

热点排行