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

Posted

技术标签:

【中文标题】错误:“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()]++

【讨论】:

以上是关于错误:“operator[]”不匹配(操作数类型为“QVector<int>”和“QCharRef”)的主要内容,如果未能解决你的问题,请参考以下文章

错误:'operator<<' 不匹配(操作数类型为'std::ostream' aka'std::basic_ostream<char>' 和'std::_List_iter

运算符 == 错误 [关闭]

‘operator<<’ 不匹配(操作数类型是 ‘std::ostream’ aka ‘std::basic_ostream<char>’ 和 ‘const std::type

错误:与 'operator=' 不匹配。试图从基类继承并从基类初始化?

使用ActiveSheet.Range时运行时错误13“类型不匹配”

如何完全绕过`错误:不匹配'operator =='`?