我在理解 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
是一样。
有人知道有什么不同吗?
谢谢
最佳答案
那是因为 operator[]
应该应用于 QList
object,但是 myList
是一个 指向QList
的指针。
尝试
ABC = (*myList)[i];
相反。 (此外,正确的语法应该是 myList->at(i)
而不是 myList.at(i)
。)
关于c++ - 指向 QList 的指针 - at() 与 [] 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230309/