c++ цикл не добовляет значения в вектор
vector <int> cnt(10);
string s;
getline(cin, s);
for (auto el: s){
if (isdigit(el)){
el = (int) el;
cnt[el] += 1;
}
}
итерируюсь по строке и если символ это число то изменяю в вектор cnt его значение на + 1, но оно почемуто не изменяется
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Видите ли... не огорчайтесь, но если, скажем, el
— это символ 0
, то (int)el
будет равно 48 — ASCII-коду символа 0
... Так что вы получаете выход за границу вашего вектора и неопределенное поведение.
Было бы логичнее написать
if (isdigit(el)) cnt[el-'0']++;