1. ホーム
  2. c++

[解決済み] フレックスエラーC++で構造体を定義する

2022-03-03 14:55:42

質問

フレックスプログラム内で構造体を定義したい。

%{

#include <math.h>
#include <string>
#include <vector>
#include <iostream>
#include <map>

struct Node{
    string action;
    vector<Node> vecini[];
};

%}

で、vectorとstringを含めても、このようなエラーが発生します。 error: 'string' does not name a type error: field 'vecini' has incomplete type (フィールド 'ベッキーニ' は不完全な型)

ありがとうございました。

解決方法は?

ベクターと文字列の両方が std 名前空間を使用するため、これらの型のメンバ変数の宣言に追加する必要があります。というコードに変更します。

%{

#include <math.h>
#include <string>
#include <vector>
#include <iostream>
#include <map>

struct Node{
    std::string action;
    std::vector<Node*> vecini[];
};

%}

EDIT: (Kerrek SBに感謝): また、Nodeのメンバーとして、Nodeのベクトルを定義することはできません。代わりに、ノードへのポインタのベクトルを使う。 std::vector<Node*> vecini[];