ошибка вектора push_back C++: запрос на участника 'push_back' …, который имеет нетип класса 'вектор (символ, средство выделения (символ)) () ()'

Я использую 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 memberpush_back' в string1', which is of non -class typeстанд.:: вектор> () ()'

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

18
задан Dlongnecker 5 May 2010 в 03:43
поделиться

2 ответа

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

vector<char> string1;

В противном случае это объявляет функцию string1 , который не принимает аргументов и возвращает вектор .

44
ответ дан 30 November 2019 в 06:29
поделиться

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

5
ответ дан 30 November 2019 в 06:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: