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
なぜ?ありがとう!