Map
Map Functions
map<string , int> phoneNum; phoneNum.insert( pair<string , int>("zunglee", 530-7972));
map<string , int> phoneNum; phoneNum.insert( pair<string , int>("zunglee", 530-7972)); for(pair<string , int> p : phoneNum){ cout<<"Contact Name :" <<p.first; cout<<"Contact number :" <<p.second; }
//1.) COPY to vector and sort; map<string , int> phoneNum; .. .. .. vector<pair<string , int>> vecData; for(auto &it : phoneNum){ vecData.push_back(it); } sort(vecData.begin() , vecData.end() , []( pair<string,int> a , pair<string,int> b ){ return a.second < b.second; });
map<string , int> phoneNum; .. .. .. struct comp { template <typename T> // Comparator function bool operator()(const T& l, const T& r) const { if (l.second != r.second) { return l.second < r.second; } return l.first < r.first; } }; set<pair<string , int> , comp> setData(phoneNum.begin() , phoneNum.end());
map<string , int> phoneNum; .. .. .. sortMap(phoneNum); void sortMap(map<string , int> &M){ multimap<int, string> MM; for (auto& it : M) { MM.insert({ it.second, it.first }); } }