我对 std::map 结构有疑问:此代码片段可以正常工作:
map<string,int> mappa;
int main(int argc, char** argv) {
mappa["b"]=1;
mappa["a"]=2;
for(std::map<string,int>::iterator it=mappa.begin();it!=mappa.end();++it )
{
cout<<it->first<<"\n";
}
return 0;
}
输出:
a
b
但如果我这样做:
map<string,int> mappa;
std::map<string,int> getList(){
return mappa;
}
int main(int argc, char** argv) {
mappa["b"]=1;
mappa["a"]=2;
for(std::map<string,int>::iterator it=getList().begin();it!=getList().end();++it )
{
cout<<it->first<<"\n";
}
return 0;
}
我的输出只是
b
为什么?谢谢!