标题:for_each中用lambda表达式遍历时,出错,,请各位指教
取消只看楼主
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
已结贴  问题点数:20 回复次数:3 
for_each中用lambda表达式遍历时,出错,,请各位指教
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;

int main()
{
    map<int ,string> m;
    m.insert(pair<int,string>(1,"a"));
    m.insert(pair<int,string>(2,"c"));
    m.insert(pair<int,string>(3,"d"));
    m.insert(pair<int,string>(4,"e"));
    m.insert(pair<int,string>(5,"f"));
    m.insert(make_pair(6,"g"));
    m.insert(map<int,string>::value_type (7,"h"));
    m.insert(pair<int,string>(8,"i"));
   
    for_each(m.begin(),m.end(),[](map<int,string>::iterator it)
                {
                    cout<<it->second;
                });
    return 0;
}
错误信息如下
搜索更多相关主题的帖子: 表达式 map int string insert 
2018-11-28 22:22
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:0 
回复 2楼 Jonny0201
好的谢谢。。

[此贴子已经被作者于2018-11-29 14:37编辑过]

2018-11-29 14:24
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:0 
回复 3楼 rjsp
那个 我用的编译器(Devc++)自动推到不出来。。。
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;

int main()
{
    map<int ,string> m;
    m.insert(pair<int,string>(1,"a"));
    m.insert(make_pair(2,"b"));
    m.insert(map<int,string>::value_type (3,"c"));
    m.insert(pair<int,string>(4,"d"));
    for_each(m.cbegin(),m.cend(),[](const auto &it)
        {
            cout<<"first:"<<it.first<<" second:"<<it.second<<endl;
        }
       );
    return 0;
}

[Warning] use of 'auto' in lambda parameter declaration only available with -std=c++1y or -std=gnu++1y
说是auto只在with -std=c++1y or -std=gnu++1y合法。。。

[此贴子已经被作者于2018-11-29 14:38编辑过]

2018-11-29 14:24
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:0 
回复 6楼 rjsp
好的 谢谢。
2018-11-29 18:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491652-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.290771 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved