超出范围的C ++ Vector Emplace迭代器

时间:2020-05-08 15:02:13

标签: vector insert erase outofrangeexception

我有一个C ++程序,其中char矢量包含一行符号。 该程序的目的是检查此顺序,并: 1)将大写字母更改为小写字母 2)删除序列中的数字符号

为此,我使用了delete()和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--;
        }
    }

0 个答案:

没有答案