bool ccc(const string cc) {
vector digits;
int aux;
for(int n = 0; n < cc.length(); ++n) {
digits.push_back(to_string(cc[n])); }
for(int s = 1; s < digits.size(); s += 2) {
aux = stoi(digits[s]);
aux *= 2;
digits[s] = to_string(aux);
aux = 0;
for(int f = 0; f < digits[s].length(); ++f) {
aux += stoi(digits[s][f]); }
digits[s] = to_string(aux);
aux = 0; }
for(int b = 0; b < digits.size(); ++b) {
aux += stoi(digits[b]); }
aux *= 9;
aux %= 10;
return (aux == 0); }
И я получаю эту ошибку при компиляции с g++ с флагом -std=c++11:
crecarche.cpp: In function ‘bool ccc(std::string)’:
crecarche.cpp:18:12: error: no matching function for call to ‘stoi(__gnu_cxx::__alloc_traits::value_type&)’
18 | aux += stoi(digits[s][f]); }
| ~~~~^~~~~~~~~~~~~~
Но после этого я использовал функцию stoi и не получил никаких ошибок в этой строке.
Почему компилятор выдает мне ошибку эта ошибка и как ее исправить?
У меня есть эта функция в C++11: [code]bool ccc(const string cc) {
vector digits;
int aux;
for(int n = 0; n < cc.length(); ++n) {
digits.push_back(to_string(cc[n])); }
for(int s = 1; s < digits.size(); s += 2) {
aux = stoi(digits[s]);
aux *= 2;
digits[s] = to_string(aux);
aux = 0;
for(int f = 0; f < digits[s].length(); ++f) {
aux += stoi(digits[s][f]); }
digits[s] = to_string(aux);
aux = 0; }
for(int b = 0; b < digits.size(); ++b) {
aux += stoi(digits[b]); }
aux *= 9;
aux %= 10;
return (aux == 0); } [/code] И я получаю эту ошибку при компиляции с g++ с флагом -std=c++11: [code]crecarche.cpp: In function ‘bool ccc(std::string)’:
crecarche.cpp:18:12: error: no matching function for call to ‘stoi(__gnu_cxx::__alloc_traits::value_type&)’
18 | aux += stoi(digits[s][f]); } | ~~~~^~~~~~~~~~~~~~ [/code] Но после этого я использовал функцию stoi и не получил никаких ошибок в этой строке. Почему компилятор выдает мне ошибку эта ошибка и как ее исправить?