print_map:(comment:std::string_view,m:std::map<std::string,int>)={std::cout<<comment;formdo(item){std::cout<<"[(item.first)$] = (item.second)$; ";}std::cout<<'\n';}main:()={// Create a map of three (string, int) pairsm:std::map<std::string,int>=(std::make_pair("CPU",10),std::make_pair("GPU",15),std::make_pair("RAM",20));print_map("1) Initial map: ",m);m["CPU"]=25;// update an existing valuem["SSD"]=30;// insert a new valueprint_map("2) Updated map: ",m);// Using operator[] with non-existent key always performs an insertstd::cout<<"3) m[UPS] = "<<m["UPS"]<<'\n';print_map("4) Updated map: ",m);m.erase("GPU");print_map("5) After erase: ",m);std::erase_if(m,:(pair)pair.second>25);print_map("6) After erase: ",m);std::cout<<"7) m.size() = (m.size())$\n";m.clear();std::cout<<"8) Map is empty: (m.empty())$\n";}