[C++][Short][Simple] Just a Stack
```\nclass RLEIterator {\npublic:\n    stack> st;\n    \n    RLEIterator(vector& encoding) {\n        for (int i = encoding.size() - 1; i >= 0; i -= 2) {\n     
```\nclass RLEIterator {\npublic:\n    stack<pair<int, int>> st;\n    \n    RLEIterator(vector<int>& encoding) {\n        for (int i = encoding.size() - 1; i >= 0; i -= 2) {\n            if (encoding[i - 1] <= 0)   continue;\n            \n            // Will hold each value and its frequency\n            st.push({ encoding[i], encoding[i - 1] });\n        }\n    }\n    \n    int next(int n) {\n        int originalN = n;\n        \n        while(!st.empty()) {\n            auto [ value, freq ] = st.top(); st.pop();\n            \n            originalN = n;\n            n -= freq;\n            freq -= originalN;\n            \n            // IF we didn\'t consume all the frequency of the element, then push it back again\n            if (freq > 0) {\n                st.push({ value, freq });    \n            }\n            \n            // If we moved forward n steps, then we return the value\n            if (n <= 0) {\n                return value;\n            }\n        }\n        \n        return -1;\n    }\n};\n\n/**\n * Your RLEIterator object will be instantiated and called as such:\n * RLEIterator* obj = new RLEIterator(encoding);\n * int param_1 = obj->next(n);\n */
['Stack', 'C', 'C++']