我试图管理这条线:
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函数?
答案 0 :(得分:7)
您的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());
。