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

Moo*_*min 6 c++ qt qt4 qlist

我在理解一些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;
}
Run Code Online (Sandbox Code Playgroud)

我得到编译错误无法在标记行的赋值中将'QList'转换为'double'.它在我使用时起作用ABC = myList.at(i),但QT参考似乎说at()并且[] operator是同样的事情.有人知道是什么产生了影响吗?

谢谢

ken*_*ytm 9

这是因为operator[],应适用于一个QList 对象,但是myList是一个指针QList.

尝试

ABC = (*myList)[i];
Run Code Online (Sandbox Code Playgroud)

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