如何選擇?
如果你想要一個具有排序后的數據的話,通常可以選擇map這種類型。或者想要打印具有一定順序的元素。
如果你只想記錄數據而不是想要將數據進行排序的話,那么就可以選擇unordered_map這種數據結構。
注意:unordered_map是在c++11出現的,需要包含<unordered_map>頭文件。
排序
map: 在默認情況下,按照鍵遞增的排序順序
unordered_map :無序(順序可能是亂的,不一定是數據的輸入順序)

底層實現
map :在map內部采用了自平衡的BST(二叉搜索樹)的數據結構,實現了數據排序
unordered_map: 內部采用了哈希表的數據結構

搜索(查找)時間復雜度
map: 該類型的搜索時間復雜度為log(n)
unordered_map : 搜索時間復雜度。O(1)為平均時間,最壞情況下的時間復雜度為O(n);

插入操作的時間復雜度
map : 該操作的時間 復雜度為log(n)+再平衡時間
unordered_map : 該操作的時間復雜度與搜索的時間復雜度一樣。

刪除操作的時間復雜度
刪除操作的時間復雜度與插入操作的時間復雜度是一樣的。

來源:https://jingyan.baidu.com/article/851fbc377ed5f73e1e15ab10.html