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;
}