关于力扣这道整数转罗马数字的问题

链接:


著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
我想知道的做法错在哪里

class Solution {
private:
     unordered_map<int,string>hash={
    {1000, "M"},
    {900,  "CM"},
    {500,  "D"},
    {400,  "CD"},
    {100,  "C"},
    {90,   "XC"},
    {50,   "L"},
    {40,   "XL"},
    {10,   "X"},
    {9,    "IX"},
    {5,    "V"},
    {4,    "IV"},
    {1,    "I"},
     };


public:
    string intToRoman(int num) {
        string res;
        for(auto it=hash.begin();it!=hash.end();it++){
            while(num>=(it->first)){
                num-=it->first;
                res+=it->second;
            }
            if(num==0){
                break;
            }
        }
        return res;
    }
};