2010-05-05 27 views
17

Tôi đang sử dụng Cygwin với GCC và cuối cùng tôi muốn đọc trong một tập tin của nhân vật vào một vector của các nhân vật, và sử dụng mã nàyC++ lỗi vector.push_back: yêu cầu thành viên 'push_back' ..., là loại véc tơ kiểu không '(char, allocator (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; 
} 

tạo này lỗi thời gian biên dịch:

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 >()()'

tôi đã cố gắng điều này với một vector của ints và chuỗi và họ cũng có cùng một vấn đề.

Trả lời

42

Không sử dụng dấu ngoặc đơn để gọi constructor mặc định:

vector<char> string1; 

Nếu không điều này tuyên bố một hàm string1 mà mất không argumentes và trả về một vector<char>.

6

Xóa các dấu ngoặc trong tuyên bố của vector - chúng khiến nó trở thành một khai báo chức năng chứ không phải khai báo vectơ.

Các vấn đề liên quan