unordered_map(等價於hash_map)和map用法相似。unordered_map不會根據key的大小進行排序,
map
內部數據的組織,基於紅黑樹實現,紅黑樹具備自動排序的功能,所以map內部全部的數據,在任什麼時候候,都是有序的。
unordered_map(hash_map)
基於哈希表,數據插入和查找的時間複雜度很低,幾乎是常數時間,而代價是消耗比較多的內存。底層實現上,使用一個下標範圍比較大的數組來存儲元素,造成不少的桶,利用hash函數對key進行映射到不一樣區域進行保存。數組
map<string, vector<string>> aMap;//或替換爲hash_map vector<vector<string>> aResult; for (auto s : strs) { string ss = s; sort(ss.begin(), ss.end()); aMap[ss].push_back(s); } for (auto s : aMap) { aResult.push_back(s.second); }