我正在尝试运行这条线:
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函数?
你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());
.