Design Compressed String Iterator

设计一个runlength压缩后的string的iterator.

class StringIterator {
public:
    deque<char> v;
    deque<int> c;
    StringIterator(string cs) {
        for(int i = 0; i < cs.length();) {
            if(i < cs.length() && '0' <= cs[i] && cs[i] <= '9'){
                int count = 0;
                while(i < cs.length() && '0' <= cs[i] && cs[i] <= '9'){
                    count = (count * 10) + (cs[i] - '0');
                    i++;
                }
                c.push_back(count);
            }else{
                v.push_back(cs[i++]);
            }
        }
    }
    
    char next() {
        if(!hasNext())
            return ' ';
        c[0]--;
        char vv = v.front();
        if(c[0] == 0){
            c.pop_front();
            v.pop_front();
        }
        return vv;
            
    }
    
    bool hasNext() {
        return c.size() != 0 && v.size() != 0;
    }
};

/**
 * Your StringIterator object will be instantiated and called as such:
 * StringIterator* obj = new StringIterator(compressedString);
 * char param_1 = obj->next();
 * bool param_2 = obj->hasNext();
 */