usa <string> con la funcion find busca la posicion de todos los simbolos que te interesen, separa todo usando substr en cadenas de prioridades, preferiblemente en un array dinamico...
resuelve primero las independientes, por ejemplo los parentesis que no dependen de otro calculo, luego, las que dependan de las que acabas de resolver, y así....
para ser sincero no leí todo, pero con fin y substr debes poder resolver por lo menos el primer 50% del problema D: