在下面的代碼中?
map<long?long,?long?long>?mm;//?????long?long?mm[maxn];
不可以替換
為什么?
我一點(diǎn)都不懂map的用法,最好還能給個(gè)鏈接指導(dǎo)一下(我百度完沒(méi)看懂呀)
謝謝!
#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;
}
數(shù)組和map容器區(qū)別
慕粉18341035298
2017-01-31 18:23:47