SUPER EASY C++ SOLUTION  WITH EXPLANATION
EXPLANATION  Create two vectors one for stack and other for minimum number entered(min). \nPush: Push every element into the stack vector but only push element 
**EXPLANATION**  Create two vectors one for stack and other for minimum number entered(min). \n**Push**: Push every element into the stack vector but only push element in min  if it is empty or the current number is smaller than or equal to the last enterd number in min vector. \n**POP**: If last elements entered of stack and min are same then pop both of them. Else just pop out back element of stack.\n\n\n\n```\nclass MinStack {\n\n    /** initialize your data structure here. */\n    vector<int> min;\n    vector<int> stack;\n    public:\n    MinStack() {\n        \n    }\n    \n    void push(int x) {\n        stack.push_back(x);\n        if(min.empty()||min.back()>=x)\n            min.push_back(x);\n    }\n    \n    void pop() {\n        if(stack.back()==min.back())\n            min.pop_back();\n        \n        stack.pop_back();\n    }\n    \n    int top() {\n        if(!stack.empty())\n        return stack.back();\n        \n        return -1;\n    }\n    \n    int getMin() {\n        if(!min.empty())\n        return min.back();\n        \n        return -1;\n    }\n};\n```\n\n**Kachow**
[]