//ans += ha.count(vec[i]-k);
ans += ha[vec[i]-k];
今天写题的时候犯的错误, 本来自己已经让map的value作为次数去统计了,结果使用count去计算次数。count函数的值仅有0或1,仅做判断使用。
补充
只要使用过某key, 无论是否真实存在, 调用count都为1.
map<int, int>ha;
cout<< ha.count(2);
if(ha[3] > 0) cout<<"ss";
cout << endl << ha[3] <<endl;
cout << ha.count(3); //输出为1