map具体分为普通Map和Unordered_Map,二者差异参考以下链接,后续再讨论红黑树相关【太难了 QAQ...】【已解决】
map:有序的,占用内存小,底层是红黑数的赋值插入
unordered_map: 无序,速度快,底层是哈希表的赋值插入
下面为LeetCode上剑指offer的56题I,主要涉及unordered的插入和删除操作。
#include<iostream>
#include<cmath>
#include<vector>
#include <algorithm>
#include <map>
#include <algorithm>
#include <unordered_map>
using namespace std;
class Solution{
public:
vector<int> singleNumbers(vector<int> & nums) {
int n = nums.size();
unordered_map<int, int> hash_map;
for (int i = 0; i < n; ++i)
{
hash_map[nums[i]]++;
if (hash_map[nums[i]] == 2)
{
hash_map.erase(nums[i]);
}
}
vector<int> result;
auto iterator = hash_map.begin();
for (; iterator !=hash_map.end(); iterator+