Мне нужно объявить два стека структуры внутри собственного объявления структуры. Я знаю, что могу выполнить эту операцию с массивом, пока я ссылаюсь на указатель внутри структуры (то есть FA *goingTo[30];
дал бы мне массив из 30 FA
s). Есть ли аналогичный способ ссылки на стек?Объявление стека структуры внутри определения структуры
typedef struct FA
{
std::stack<FA> goingTo;
std::stack<FA> comingFrom;
};
ли вы имеете в виду в виду 'STD :: стеку going_from_or_to [2]' (или лучше 'станд :: массив <станд :: стек > going_from_or_to'), а затем использовать указатели, итераторы, или индексы для перехода через них? Непонятно, что вы спрашиваете. –
o11c
Или подождите, вы имеете в виду, есть ли способ перебора * внутри * стека? В этом случае нет: 'std :: stack' предоставляет только доступ к элементу' top'. Если вы хотите получить доступ к другим элементам, просто используйте 'std :: vector' или' std :: deque' напрямую; 'std :: stack' практически бесполезен. – o11c
Структуры не допускаются к содержанию стандартных контейнеров. Вам нужно будет сделать что-то другое. У Boost есть несколько контейнеров, которые могут это сделать. –