Проект представляет собой однострочный калькулятор, конкретной проблемной частью кода является:
Код: Выделить всё
#include
#include
#include
using namespace std;
int main()
{
vector toProcess = { "5","*","(","5","+","5",")"};
vector operatorPositions = { 1,2,4,6};
vector operatorOrder;
for (int i = 0; i < operatorPositions.size(); i++)
{
operatorOrder.push_back(&operatorPositions.at(i));
}
for (int i = 0; i < operatorPositions.size(); i++)
{
if (toProcess.at(operatorPositions.at(i)) == "(" || toProcess.at(operatorPositions.at(i)) == ")")
{
int storedPosition = operatorPositions.at(i);
for (int j = i + 1; j < operatorPositions.size(); j++)
{
operatorPositions.at(j)--;
}
operatorOrder.erase(operatorOrder.begin() + i);
operatorPositions.erase(operatorPositions.begin() + i);
toProcess.erase(toProcess.begin() + storedPosition);
}
}
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79239248/c-problem-when-deleting-an-element-from-vector-of-pointers[/url]
Мобильная версия