c ++ vector.push_back error: запрос на член 'push_back' ..., который имеет неклассовый тип 'vector (char, allocator (char)) () ()' - PullRequest
18 голосов
/ 05 мая 2010

Я использую 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 push_back 'в string1', which is of non -class type std :: vector> () ()'

Я пробовал это также с вектором целых и строк, и у них была та же проблема.

Ответы [ 2 ]

44 голосов
/ 05 мая 2010

Не используйте скобки для вызова конструктора по умолчанию:

vector<char> string1;

В противном случае объявляется функция string1, которая не принимает аргументов и возвращает vector<char>.

5 голосов
/ 05 мая 2010

Удалите символы в объявлении vector - они означают, что это объявление функции, а не объявление вектора.

...