2010-02-09 13 views
6

मुझे कुछ क्यूलिस्ट व्यवहार को समझने में समस्या हो रही है।क्यूलिस्ट के लिए सूचक - पर() बनाम [] ऑपरेटर

#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' परिवर्तित नहीं कर सकते चिह्नित लाइन पर। यह काम करता है जब मैं ABC = myList.at(i) का उपयोग करता हूं, लेकिन क्यूटी संदर्भ यह कहता है कि at() और [] operator एक ही बात है। क्या कोई जानता है कि क्या अंतर बनाता है?

धन्यवाद

उत्तर

9

क्योंकि operator[] एक QListवस्तु को लागू किया जाना चाहिए है कि मतलब है, लेकिन myList एक सूचकQList है।

ABC = (*myList)[i]; 
बजाय

की कोशिश करो। (इसके अलावा, सही सिंटैक्स myList->at(i) बजाय myList.at(i) होना चाहिए।)

+0

हां मेरा मतलब था मेरालिस्ट-> (i) - प्रश्न में गलत टाइपिंग, सहायता के लिए धन्यवाद। – Moomin

3

आप शायद

ABC = (*myList)[i]; 
3

MyList QList के लिए सूचक इसलिए आप लाइन विस्मयादिबोधक चिह्न के साथ चिह्नित में (*myList)[i] के रूप में उपयोग करना चाहिए। इसके अलावा, आप ABC = myList.at(i) का उपयोग नहीं कर सकते हैं, आपको एबीसी = myList->at(i)

संबंधित मुद्दे