class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        vector<vector<string>> ret;
        multimap<string,string> mmap;
        
        int n = strs.size();
        for(int i=0;i<n;++i){
            string s=strs[i];
            sort(s.begin(),s.end());
            mmap.insert(make_pair(s,strs[i]));
        }
        
        multimap<string,string>::iterator ite=mmap.begin();
        int cnt=0;
        while(ite!=mmap.end()){
            cnt= mmap.count(ite->first);
            vector<string> tmp;
            for(int i=0;i<cnt;++i,++ite){
                tmp.push_back(ite->second);
            }
            ret.push_back(tmp);
        }
        return ret;
        
    }
};

本题用到了关联容器的思想,也可以将  mmap.insert(make_pair(s,strs[i]));写成 mmap.insert(pair<string,string>(s,strs[i]));。