好的,非常难过这个。适用于Visual Studio,但不适用于Code :: Blocks(GNU编译器)。
transform(m_teams.begin(), m_teams.end(), inserter(teamNames, teamNames.end()),
[](stVecPair team) -> string { return team.first; });
m_teams
是地图:typedef map<string, vector<Person*> > stVecMap;
teamNames
是一套:typedef set<string> StrSet;
stVecPair
是一对匹配m_teams
:typedef pair<string, vector<Person*> > stVecPair;
完全错误
error: no matching function for call to 'transform(std::map<std::basic_string<char>,
std::vector<Person*> >::const_iterator, std::map<std::basic_string<char>,
std::vector<Person*> >::const_iterator, std::insert_iterator<std::set<std::basic_string<char> > >,
RaceAnalyzer::teams() const::<lambda(RaceAnalyzer::stVecPair&)>)
答案 0 :(得分:0)
正如我评论的那样,您已忘记-std=c++11
选项&gt; o&lt;