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可以,用数组不行。
相关文章推荐
- C++中map<int,vector<int>>的初始化和访问方法
- 1054 map<int,int>
- map<int,int>::iterator it 的用法
- 不允许使用“{...}”对”std::vector<int,std::allocator<int> >“类型的对象进行初始化
- c# List<int> 转 string 以及 string [] 转 List<int>
- C#委托的简单学习:定义委托和使用、Func<int f1,out r1>、给自定义的类或数组排序(冒泡排序)
- priority_queue<int,vector<int>,greater<int>>优先队列 按照由小到大顺序
- leetcode+蛇形数组,就是vector<vector<int>> 的使用
- map<pair,int>嵌套类型
- 重点是用数组初始化vector<int>数组啊
- Java集合转换【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- vector< vector<int> >类似于二维数组
- C++ error C2662: “LinkNode<T> *List<T>::Locate(int)”: 不能将“this”指针从“const List<int>”转换为“List<int> &”
- set<pair<int,int> >的用法
- 将List<Map>转化成数组
- hdu 1251 统计难题< map<string,int> >
- 集合转换java:【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- Map<String, String> m3 = new HashMap<>(3); 申请了多大的数组空间
- vector<int>::iterator和vector<int*>::iterator以及vector<int>*的不同
- UESTC 1603 BanG Dreamer 小根堆、贪心+set<pair<int, int>>+low_bound