【问题标题】:Pointer to QList - at() vs. [] operator指向 QList 的指针 - at() 与 [] 运算符
【发布时间】:2011-01-14 21:03:04
【问题描述】:

我在理解某些 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;
}

我得到编译错误cannot convert ‘QList’ to ‘double’ in assignment 在标记的行。当我使用ABC = myList.at(i) 时它可以工作,但QT 参考似乎说at()[] operator 是同一件事。 有人知道有什么区别吗?

谢谢

【问题讨论】:

    标签: c++ qt qt4 qlist


    【解决方案1】:

    你可能是说

    ABC = (*myList)[i];
    

    【讨论】:

      【解决方案2】:

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

      试试

      ABC = (*myList)[i];
      

      相反。 (另外,正确的语法应该是myList-&gt;at(i) 而不是myList.at(i)。)

      【讨论】:

      • 是的,我的意思是 myList->at(i) - 输入错误,谢谢您的帮助。
      【解决方案3】:

      myList 是指向 QList 的指针,因此您应该在标有感叹号的行中将其用作(*myList)[i]。另外,你不能使用ABC = myList.at(i),你必须使用ABC = myList-&gt;at(i)

      【讨论】:

        猜你喜欢
        • 2011-05-09
        • 1970-01-01
        • 2013-07-04
        • 1970-01-01
        • 1970-01-01
        • 2017-07-18
        • 2011-08-04
        • 1970-01-01
        相关资源
        最近更新 更多