c – 指向QList的指针 – at()与[]运算符

我在理解一些QList行为方面遇到了问题.
#include <QList>
#include <iostream>
using namespace std;

int main()
{
    QList<double> *myList;

    myList = new QList<double>;
    double myNumber;
    double ABC;

    for (int i=0; i<1000000; i++)
    {
        myNumber = i;
        myList->append(myNumber);
        ABC = myList[i]; //<----------!!!!!!!!!!!!!!!!!!!
        cout << ABC << endl;
    }

    cout << "Done!" << endl;
    return 0;
}

我得到编译错误无法在标记行的赋值中将’QList’转换为’double’.它在我使用ABC = myList.at(i)时有效,但QT参考似乎说at()和[]运算符是一样的.
有人知道是什么产生了影响吗?

谢谢

解决方法

这是因为operator []应该应用于QList对象,但myList是指向QList的指针.

尝试

ABC = (*myList)[i];

代替. (另外,正确的语法应该是myList-> at(i)而不是myList.at(i).)

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...