gpt4 book ai didi

c++ - QT & C++ : Passing 'const QString' discards qualifiers

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:58 26 4
gpt4 key购买 nike

我写了一个在 STL 中运行良好的循环,但是我一直在尝试使用正确的 QTL 数据类型,但它给了我错误:

error: passing 'const QString' as 'this' argument of 'QString& QString::operator=(char)' discards qualifiers [-fpermissive]
dic.at(i) = char(i);

我要运行的完整代码是这样的:

    QVector <QString> dic ( 256 );
for(int i = 0; i < 256; i++)
{
dic.at(i) = char(i);
}

不太确定我的代码需要更新什么,有什么想法吗?

最佳答案

QVector::atconst .你想使用 dic[i] .

详细信息:因为 Qt 的容器是写时复制,非常量访问器本质上更昂贵,因为它们必须首先检查是否需要复制底层数据(并在必要时复制)。出于这个原因,在 Qt 中,at(i)会比 operator[] 快.遗憾的是,这与 STL 相反,例如,std::vector<T>::at(i)进行边界检查,因此比 std::vector<T>::operator[](i) 稍微贵一点.

关于c++ - QT & C++ : Passing 'const QString' discards qualifiers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24377711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com