std::map vs std::unordered_map

      Comments Off on std::map vs std::unordered_map

std::map và std::unordered_map là 2 kiểu data structure STL có cách sử dụng như nhau (searching, insert, delete).

#include<iostream>
#include<unordered_map>
#include<string>
#include 
<map>

int main() {
	/////////////// UNORDERED_MAP ///////////////////////////////
	std::unordered_map<std::string, std::string> hash_table;
	hash_table["Bui"] = "La 1 dong ho kha pho bien o viet nam";
	hash_table["Nguyen"] = "The most popular lastname in vietnam";
	auto it = hash_table.find("Bui");
	if (it != hash_table.end())
		std::cout << it->second << std::endl;
	hash_table.erase("Nguyen");
	//////////////// MAP ////////////////////////////////////////
	std::map<std::string, std::string> my_map;
	my_map["Bui"] = "La 1 dong ho kha pho bien";
	my_map["Nguyen"] = "Nguyen is the most popular lastname in Vietnam";
	auto it1 = my_map.find("Bui");
	if (it1 != my_map.end()) {
		std::cout << it1->second << std::endl;
	}
	my_map.erase("Nguyen");
	return 0;
}

Chỉ khác nhau ở chỗ: std::unordered_map sử dụng hash table để implement, còn std::map dùng cây cân bằng đỏ đen để impelement.