1. Unordered_map trong C++
Tương tự như map thì unordered_map được sử dụng để lưu trữ dữ liệu theo cặp key - value. Các hàm của map thì unordered_map đều có nhưng khác nhau về độ phức tạp.
unordered_map được cài đặt bởi cấu trúc dữ liệu bảng băm - hash table. Bạn cần thêm thư viện "unordered_map" vào để có thể sử dụng container này.
Các tính chất của unordered_map :
- unordered_map lưu trữ phần tử với các key là riêng biệt
- Các phần tử trong unordered_map không có thứ tự
Mã nguồn :
#include "iostream" #include "map" #include "unordered_map" using namespace std; int main(){ unordered_map<string, string> mp; mp["28tech"] = "28tech.com.vn"; mp["USA"] = "Trump"; mp["Russia"] = "Putin"; for(pair<string, string> it : mp){ cout << it.first << " " << it.second << endl; } return 0; }
Output :
Russia Putin USA Trump 28tech 28tech.com.vn
2. Các hàm find(), count(), erase()
Cách dùng 3 hàm phổ biến này của unordered_map tương tự như map, điều khác biệt duy nhất đó là vì unordered_map được cài đặt bởi bẳng băm thay vì cây đỏ đen Red-black tree như map nên sẽ có sự khác nhau về độ phức tạp.
Độ phức tạp trung bình của 3 hàm này là O(1), tuy nhiên trong trường hợp tệ nhất (Worst case) thì nó có thể là O(N).
Hàm insert trong unordered_map cũng tương tự như vậy về độ phức tạp.
Mã nguồn :
#include "iostream" #include "map" #include "unordered_map" using namespace std; int main(){ unordered_map<string, string> mp; mp["28tech"] = "28tech.com.vn"; mp["USA"] = "Trump"; mp["Russia"] = "Putin"; mp.erase("USA"); for(pair<string, string> it : mp){ cout << it.first << " " << it.second << endl; } return 0; }
Output :
Russia Putin 28tech 28tech.com.vn
Video tutorial :