C++ map
第一次练习使用C++的map
题目相关:统计同一个元素出现次数。
链接:https://ac.nowcoder.com/acm/contest/11189/A
#include <bits/stdc++.h> using namespace std; #define ll long long int unordered_map<ll, ll> mp; int main() { mp.clear(); ll n, Mx = 0, a, sum = 0; cin >> n; while (n--) { cin >> a; mp[a]++; Mx = max(Mx, mp[a] * a); } cout << Mx; return 0; }
两个Get点,map可以用[ ]访问,访问不存在key时则自动创建。 (懂了,那基本就是用它自动创建了)
然后map是给key排序的,低层是红黑树,对于那些有顺序要求的问题,用map会更高效一些。
如果不需要排序,而是查找问题,可以用unordered_map,底层是哈希表,查找更快。