title: Using Stacks in C++ to Evaluate the Postfix Expression
body: <p>Ok, I already have it in postfix notation and I am sending over a string variable that will have the postfix notation as something such as: 5 15 2 *+
  Here is my code:</p>
  
  <pre><code>int evaluatePostFix(string postfix_expression){
  //Create a new stack
  stack&lt;int&gt; theStack;
  //Loops while the postfix expression string still contains values
  while(postfix_expression.length()&gt;=1){
      //Loops on a number an whitespace
      while(isdigit(postfix_expression.at(0)) || isspace(postfix_expression.at(0))){
          //Holds a number that is above two digits to be added to the stack
          string completeNum;
          if(isdigit(postfix_expression.at(0))){ 
              //Add the digit so it can become a full number if needed
              completeNum+=postfix_expression.at(1);
          }
          else {
              //Holds the integer version of completeNum
              int intNum;
              //Make completeNum an int
              intNum=atoi(completeNum.c_str());
              //push the number onto the stack
              theStack.push(intNum);
          }
          //Check to see if it can be shortened
          if(postfix_expression.length()&gt;=1){
              //Shorten the postfix expression
              postfix_expression=postfix_expression.substr(1);
          }
      }
      //An Operator has been found
      while(isOperator(postfix_expression.at(0))){
          int num1, num2;
          char op;
          //Grabs from the top of the stack
          num1=theStack.top();
          //Pops the value from the top of the stack - kinda stupid how it can return the value too
          theStack.pop();
          //Grabs the value from the top of the stack
          num2=theStack.top();
          //Pops the value from the top of the stack
          theStack.pop();
          //Grab the operation
          op=postfix_expression.at(0);
          //Shorten the postfix_expression
          postfix_expression=postfix_expression.substr(1);
          //Push result onto the stack
          theStack.push(Calculate(num1,num2, op));
      }
  }
  return theStack.top();
  </code></pre>
  
  <p>}</p>
  
  <p>The error I get is "Deque iterator not deferencable"</p>
  
  <p>Any help that I can get on this error would be much appreciated.
  btw I haven't used C++ in a couple of years so I'm a bit rusty.</p>