Don't get whats causing (Process returned -1073741819 (0xC0000005))

this bit of my code keeps getting Process returned -1073741819 (0xC0000005), and I don’t know why.

bool autoregex(string test){
    regex e ("[-+]?([0-9]*\.[0-9]+|[0-9]+)");
   if (regex_match (test,e))
        return true;

    return false;
}
bool autrege(string test){
    regex aret("SIN|LOG|sqrt|sin|log|tan|pi|e|ln|EE|[^0-9a-z$@#&]");
               if (regex_match (test,aret)){
                return true;
               }

    return false;
               }
               void namehere(string test){
if(autrege(test) == true){
regex bret("[+-]");
regex cret("[/*xX]");
regex dret("SIN|LOG|sqrt|sin|log|tan|pi|!|e|ln|EE|\\^");
regex omega("\\)");
regex canmae("\\(");
if (regex_match (test,bret)){num2 = 1;};
if (regex_match (test,cret)){num2 = 2;};
if (regex_match (test,dret)){num2 = 3;};
if (regex_match (test,omega)){num2 = 4;numaltt = numaltt + 1;};
if (regex_match (test,canmae)){num2 = 4;numalt = numalt + 1;};
}




               }

int main()
{
vector<double> vec;
    again = "n";

 while(again == "n"&&abrt == 0){
        // queue<double> numbers; stack<int> pres;
        queue<string> output;
   int test;
 string name;
   getline(cin, name);
   istringstream iss(name);
 string token;
    while(iss >> token)
    {
      if(autoregex(token) == true){
            output.push(token);
      }
      if(autrege(token)== true)//token area
      {


          namehere(token);
          num6++;
       while(presedence.empty() == 1 && oprators.empty() == 1)
        {
            presedence.push(num2);
            oprators.push(token);
       }
       while(presedence.top() < num2 && presedence.empty() == 0 && oprators.empty() == 0)
        {
        oprators.push(token);
        presedence.push(num2);

       }
       while(presedence.top() == num2 && presedence.empty() == 0 && oprators.empty() == 0)
       {
          cout<<oprators.top()<<endl;
        output.push(oprators.top());
        oprators.pop();
                  cout<<oprators.size()<<endl;
        presedence.pop();
        cout<<presedence.size()<<endl;
       }
       while(presedence.top() > num2 && presedence.empty() == 0 && oprators.empty() == 0)
       {
        output.push(oprators.top());
        oprators.pop();
        presedence.pop();
       }
//3-T 2-ME 5/5+4 push 5,push /,push 5,push +,push 4,stack run
      }

}
while(presedence.empty() != 1 && oprators.empty() != 1){  output.push(oprators.top());
oprators.pop();presedence.pop();}
while(!output.empty()){cout<<output.front()<<",";output.pop();}

}

while(again != "n"&&abrt == 0){

}


}

Did you import std::string and std::regex and so on? What you shared wouldn’t compile because it was missing those. But maybe you did import them but didn’t bother pasting them in, in which case your problem is something different.