问题
今天写代码的时候忽然跳出这么一条:
terminate called after throwing an instance of 'std::invalid_argument'
what(): stoi
解决
检查了一下发现是这句话写反了,应该是判断字符串非空的时候再使用stoi函数:
sum += mp[s[i]] * (cnt == "" ? (stoi(cnt)) : 1);
正确写法:
sum += mp[s[i]] * (cnt == "" ? 1 : (stoi(cnt)));