能把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?

QVector<int> 写入/调整大小性能

无法访问复杂的 qvector 的方法

错误:“operator[]”不匹配(操作数类型为“QVector<int>”和“QCharRef”)

qvector倒序插入

QT迭代器 QVector<int>::iterator it;