c ++ vector.push_back错误:请求成员'push_back'...,这是非类型的'vector(char,allocator(char))()()'

时间:2010-05-05 03:43:23

标签: c++ gcc vector cygwin compilation

我正在使用Cygwin与GCC,最终我想在一个字符文件中读入一个字符向量,并使用此代码

#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:在int main(int, char**)': main.cpp:46: error: request for member std :: vector&gt;中的函数string1', which is of non -class type push_back'中()()'

我用一个整数和字符串向量尝试了这个,他们遇到了同样的问题。

2 个答案:

答案 0 :(得分:45)

不要使用括号来调用默认构造函数:

vector<char> string1;

否则,这会声明一个函数string1,它不需要任何参数并返回vector<char>

答案 1 :(得分:6)

删除vector声明中的parens - 它们使它成为函数声明而不是向量声明。