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

时间:2014-06-24 03:43:39

标签: 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函数?

1 个答案:

答案 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());