加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

QString相当于.at()C QT

发布时间:2020-12-16 09:52:57 所属栏目:百科 来源:网络整理
导读:我正在尝试运行这条线: out.push_back( a.at(0) ); 哪个是QVector持有整数 QVector int out ( 0 ); 它给我的错误代码是: error: no matching function for call to 'QVectorint::push_back(const QChar)' out.push_back( a.at(0) ); ^ 这让我相信.at()不是
我正在尝试运行这条线:

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());代替.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读