+-
QString相当于.at()C QT
我正在尝试运行这条线:

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 - 乐贴网