猿问

数组和map容器区别

在下面的代码中 
map<long long, long long> mm;//     long long mm[maxn];
不可以替换
为什么?
我一点都不懂map的用法,最好还能给个链接指导一下(我百度完没看懂呀)
谢谢!



#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<map>
using namespace std;
#define maxn 100005
long long sz[maxn];
int main()
{
 long long n, x;
 long long key, cnt;
 while (scanf("%I64d %I64d", &n, &x) == 2)
 {
  key = 0;
  cnt = 0;
  map<long long, long long> mm;//     long long mm[maxn];
  for (int i = 0; i<n; i++)
  {
   scanf("%I64d", &sz[i]);
   mm[sz[i]]++;
  }
  for (int i = 0; i<n; i++)
  {
   cnt = x^sz[i];
   if (cnt == sz[i])
    key += mm[cnt] - 1;
   else
    key += mm[cnt];
  }
  cout << key / 2 << endl;
 }
 return 0;
}


慕粉18341035298
浏览 2331回答 3
3回答

眼前的黑不是黑zz

你可以看下慕课网上的c++的STL相关教程啊http://www.imooc.com/video/9597
随时随地看视频慕课网APP
我要回答