一道关于stl map的题目,水题。
一开始WA一次因为map 没有清空
另关于map,没有出现的key对应的value都是0,应该可以认为一开始初始化为0,这样就可以十分方便的进行加减操作。如下代码。
map<vector<int>,int> tt;
vector<int> v;v.push_back(0);
tt[v]++;
cout<<tt[v]<<endl;
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <map>
#include <vector>
using namespace std;
map<vector<int>,int> dict;
int main(){
int n,a,b;
while(cin >> n && n!=0){
dict.clear();
while(n--){
cin >> a>>b;
vector<int> v;
v.push_back(a);v.push_back(b);
dict[v]++;
}
bool flag = true;
for(map<vector<int>,int>::iterator it=dict.begin();it!=dict.end();it++)
{
vector<int> vt = it->first;
vector<int> ne;
ne.push_back(vt[1]); ne.push_back(vt[0]);
if (dict[vt]!=dict[ne]){flag = false;break;}
}
if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
原文地址:http://blog.csdn.net/iboxty/article/details/45957815