С ++ Vector размещает итератор вне диапазона - PullRequest
0 голосов
/ 08 мая 2020

У меня есть программа на C ++ с вектором символов, содержащим строку символов. Цель этой программы - проверить эту последовательность и: 1) заменить строчную букву на ее аналог в верхнем регистре 2) удалить числовые символы в последовательности

Для этого я использовал erase () и insert () функций, но после первой функции insert () программа выдает ошибку

vector emplace iterator outside range

Вот моя программа:

vector<char> symbols{'g', 'l', 'H', 'L', '6', '5', 'd', 'G', 'A'};

for (cPtr = symbols.begin();cPtr < symbols.end();cPtr++) {
        if (*cPtr > 'a' && *cPtr < 'z') {
            symbols.erase(cPtr);
            symbols.insert(cPtr, (*cPtr-22));//here is the error

        }

        if (*cPtr > '1' && *cPtr < '10') {
            symbols.erase(cPtr);
            cPtr--;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...