2010-05-05 16 views
17

है, मैं जीसीसी के साथ सिगविन का उपयोग कर रहा हूं, और अंत में मैं पात्रों में से एक वेक्टर में पात्रों में से एक फ़ाइल में पढ़ना चाहते हैं, और इस कोडC++ vector.push_back त्रुटि: सदस्य 'push_back' के लिए अनुरोध ..., जो गैर-वर्ग प्रकार 'वेक्टर (char, आवंटक (char))()()'

#include <fstream> 
#include <vector> 
#include <stdlib.h> 

using namespace std; 

int main (int argc, char *argv[]) 
{ 
    vector<char> string1(); 
    string1.push_back('a'); 

    return 0; 
} 

इस संकलन समय त्रुटि उत्पन्न का उपयोग कर:

main.cpp: In function int main(int, char**)': main.cpp:46: error: request for member push_back' in string1', which is of non -class type std::vector >()()'

मैं ints और तार का एक वेक्टर के साथ इस की कोशिश की साथ ही वे एक ही समस्या थी।

उत्तर

42

डिफ़ॉल्ट निर्माता आह्वान करने के लिए कोष्ठक का उपयोग न करें:

vector<char> string1; 

अन्यथा यह एक समारोह string1 कि कोई argumentes एक vector<char> रिटर्न लेता है और घोषणा करता है।

6

vector की घोषणा में माता-पिता को हटाएं - वे इसे एक कार्य घोषणा घोषित करते हैं और वेक्टर घोषणा नहीं करते हैं।