读书人

map出现了一个有关问题

发布时间: 2012-06-22 16:16:32 作者: rapoo

map出现了一个问题

C/C++ code
#include <string>#include <iostream>#include <map>#include <utility>using namespace std;int main(){    map<string,int> firstMap;    map<string,int> secondMap;    firstMap["one"]=1;    firstMap["two"]=2;    map<string,int>::iterator i=firstMap.begin();    for(i;i!=firstMap.end();++i){        secondMap[i->first]=i->second;    //    cout<<i->first<<i->second<<endl;    }    map<string,int>::iterator n=secondMap.begin();    for(n;n!=firstMap.end();++n){        cout <<n->first <<n->second;    }}


上面是一段代码,会出现这种情况

请问这是什么情况造成的呢?而且,最终输入的值是正确的....!!



[解决办法]
C/C++ code
#include <string>#include <iostream>#include <map>#include <utility>using namespace std;int main(){    map<string,int> firstMap;    map<string,int> secondMap;    firstMap["one"]=1;    firstMap["two"]=2;    map<string,int>::iterator i=firstMap.begin();    for(i;i!=firstMap.end();++i){        secondMap[i->first]=i->second;    //    cout<<i->first<<i->second<<endl;    }    map<string,int>::iterator n=secondMap.begin();    for(n;n!=firstMap.end();++n){ //这儿改成 n != secondMap.end()        cout <<n->first <<n->second;    }}
[解决办法]
map<string,int>::iterator n=secondMap.begin();
for(n;n!=firstMap.end();++n){
cout <<n->first <<n->second;
}

读书人网 >C++

热点推荐