错误:“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=' 不匹配。试图从基类继承并从基类初始化?