web-dev-qa-db-ja.com

c ++ vector.Push_backエラー:非クラスタイプのメンバー 'Push_back' ...の要求 'vector(char、allocator(char))()()'

私はGCCでCygwinを使用していますが、最終的には文字のファイルを文字のベクトルに読み込み、このコードを使用したいと思います。

_#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'in _string1', which is of non -class type_ std :: vector>()() '

Intとstringsのベクトルでもこれを試しましたが、同じ問題がありました。

20
Dlongnecker

デフォルトのコンストラクターを呼び出すために括弧を使用しないでください。

vector<char> string1;

それ以外の場合、これは引数をとらずにstring1を返す関数vector<char>を宣言します。

44
Georg Fritzsche

vectorの宣言の親を削除します。これにより、ベクトル宣言ではなく関数宣言になります。

5
Eli Bendersky