map复制到vector里面
写代码有时候在map里面不太好操作key和value,那么一个权宜的办法就是把map的内容全部的拷贝到vector里面,然后对vector进行操作。
//假设之前定义了 map<int,double> p;
vector<pair<int,double>> v;
map<int,double>::iterator it;
for( it = p.begin();it!=p.end();it++) //copy
v.push_back(*it);
for(int i = 0; i<v.size(); i++) //output
cout<<v[i].first<<" "<<v[i].second<<endl;
上面的代码就实现了把map的内容拷贝到vector里面,然后再把vector里面的内容输出出来,当然,我们也可以对这个vector做别的操作,比如按照指定的规则进行排序等等。
直接输出map的key和value(迭代器)
其实map的(key,value)就是一个pair,那么在上面的代码里面,如果我们想要输出key,那么只需要这样做:
cout<<(*it).first<<endl; //输出key
cout<<(*it).second<<endl; //输出value
stl的map和vector还是非常好用的,以上。