+-

我正在尝试运行这条线:
out.push_back( a.at(0) );
哪个是QVector持有整数
QVector <int> out ( 0 );
它给我的错误代码是:
error: no matching function for call to 'QVector<int>::push_back(const QChar)'
out.push_back( a.at(0) );
^
这让我相信.at()不是从QString中的那个点返回整数,而是返回const QChar.
有什么方法可以让它返回那个整数,或者我错过的更好的QString函数?
最佳答案
怎么了?
你的a是一个QString,它的成员函数QString::at()总是返回QChar.据我所知,C中的std :: string :: at()也返回char而不是int.必须谨慎对待C / Qt中的数据类型!
因此,返回的QChar需要首先转换为int,以便满足您的QVector< int>的类型.模板.
但不用担心,QChar有一个成员函数:QChar::digitValue
(返回数字的数值,如果字符不是数字,则返回-1.)
解:
尝试out.push_back(a.at(0).digitValue());代替.
点击查看更多相关文章
转载注明原文:QString相当于.at()C QT - 乐贴网