您的位置:首页 > 其它

map<int,int>和数组

2011-11-27 12:04 302 查看
我们知道,要是将数组开成int a[0xFFFFFFF]这么大,那是肯定不行。它会提示too big.但是如果用map的话,那就可以了。从这个方面来讲,map就是数组的升级版喽!这个可是我发现的哦。下面简单的给出一个例子来。题目:http://acm.swust.edu.cn/oj/problem/0822/
下面给出错误的代码:
View Code
#include<iostream>
#include<cstdio>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
map<int, int> vis;
vector<int> num;
int main()
{
int N, x;
while(scanf("%d", &N)==1)
{
vis.clear();
num.clear();
while(N--)
{
scanf("%d", &x);
if(!vis[x])
{
num.push_back(x);
vis[x]++;
}
else vis[x]++;
}
sort(num.begin(), num.end());
int size = num.size();
for(int i=0; i<size; i++)
printf("%d %d\n", num[i], vis[num[i]]);
}
}
上面错误的代码中,Num就相当于map了,p就相当于vector了。
就这么简单,用map可以,用数组不行。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: