能把QVector < int >作return的返回值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了能把QVector < int >作return的返回值相关的知识,希望对你有一定的参考价值。
参考技术A 可以的,返回值类型可以是存在的所有类型,也可以是你自己定义的结构体啊,类啊之类的都可以,看你定义这个函数时候写的类型了,返回值类型要和函数类型一致 参考技术B QVector 重载了等号的,返回值为它的拷贝值,是没问题的,但是你自定义结构体时,如果结构体中有非基本类型,那么直接反就会有问题了,涉及深拷贝和浅拷贝问题,你可以查查。错误:“operator[]”不匹配(操作数类型为“QVector<int>”和“QCharRef”)
【中文标题】错误:“operator[]”不匹配(操作数类型为“QVector<int>”和“QCharRef”)【英文标题】:error: no match for ‘operator[]’ (operand types are ‘QVector<int>’ and ‘QCharRef’) 【发布时间】:2018-03-04 13:09:23 【问题描述】:我正在尝试分析qt5
中的文件。
文件是向量,每个位置都有一行文件,计数器是我存储分析结果的向量
错误:“operator[]”不匹配(操作数类型为“QVector”和“QCharRef”)
void FileAnalyzer(QVector<QString> &file,QVector<int> &counter)
counter.resize(260);
for(int row=0,lenFile=file.size();row<lenFile;row++)
for(int car=0;file[row][car]!='\0';car++)
if(file[row][car]==' ')contatore[256]++;//space
counter[file[row][car]]++;//<-- here i get the error
counter[259]++;
counter[257]++;//row
counter[257]++;//last row
counter[258]=counter[256]+counter[257];//words number
【问题讨论】:
@orenzo De Luca 错误信息已经够清楚了。 您的问题是什么?计数器索引的类型 (int
) 和文件内容 (QCharRef
) 不匹配,这是编译器已经告诉您的。您是否正在寻找将文件内容转换为数字的方法?
【参考方案1】:
发生这种情况是因为您尝试使用 QCharRef
作为索引。你应该改用QChar
:
counter[file[row].at(car).unicode()]++
【讨论】:
以上是关于能把QVector < int >作return的返回值的主要内容,如果未能解决你的问题,请参考以下文章
QVector<int>[index] 返回另一个 QVector?