QString相当于.at()C++ QT

use*_*519 3 c++ qt

我正在尝试运行这条线:

out.push_back( a.at(0) );
Run Code Online (Sandbox Code Playgroud)

哪个是QVector持有整数

QVector <int> out ( 0 );
Run Code Online (Sandbox Code Playgroud)

它给我的错误代码是:

error: no matching function for call to 'QVector<int>::push_back(const QChar)'
                 out.push_back( a.at(0) );
                                        ^
Run Code Online (Sandbox Code Playgroud)

这让我相信.at()不是从QString中的那个点返回整数,而是返回const QChar.

有什么方法可以让它返回那个整数,或者我错过的更好的QString函数?

Tay*_*510 7

怎么了?

a是一个QString,它的成员函数QString::at()总是返回QChar.据我所知std::string::at(),C++中的返回char也不是int.必须小心处理C++/Qt中的数据类型!

因此,为了满足模板的类型,QChar需要将返回的内容翻译成int第一个QVector<int>.

不过不用担心,QChar有它的成员函数:QChar::digitValue (返回数字的数值,或-1.如果字符不是一个数字)


解:

试试吧 out.push_back(a.at(0).digitValue());.