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,底层是哈希表,查找更快。

posted @ 2021-04-21 21:50  anyiya  阅读(51)  评论(0编辑  收藏  举报