Определение структуры в гибкой ошибке Переполнение стека

Я хочу определить структуру в гибкой программе:

%{

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

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

%}

и хотя я включаю вектор и строку, я все еще получаю следующие ошибки:
ошибка: «строка» не называет тип
ошибка: поле «vecini» имеет неполный тип

Спасибо !

0

Решение

И вектор, и строка находятся в std пространство имен, поэтому вы должны добавить его к объявлению переменных-членов этих типов. Измените код на:

%{

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

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

%}

РЕДАКТИРОВАТЬ: (спасибо Kerrek SB): также вы не можете определить вектор узла как члена узла. Вместо этого используйте вектор указателей для узла следующим образом: std::vector<Node*> vecini[];

2

Другие решения

Используйте полные имена для строки и вектора, например:

std::string action;
^^^^^^^^^^^

Обратите внимание, что строка и вектор определены только в std namespace, поэтому вам нужно указать полное имя, чтобы указать компилятору, в каком пространстве имен их искать.

2

По вопросам рекламы [email protected]