Добрый день!
Я делаю недетерминированные конечные автоматы с С++. Я хочу сделать таблицу переходов. Как вы знаете, он должен возвращать набор состояний. Например, таблица[состояние][символ] должна возвращать {q0,q1 и т. д.}.
Я использую для этого std::map и std::set. Я нашел этот полезный пример: как использовать stl::map как двухмерный массив
Итак, я написал код:
std::map <set<state>, std::map<state,char> > transitionTable;
Но когда я пытаюсь получить доступ к таблице, например
set<state> result = transitionTable[oldState][symbol];
Я получаю сообщение об ошибке:
C:\NFA2\main.cpp||In function 'std::set<state, std::less<state>, std::allocator<state> > delta(state, char)':|
C:\NFA2\main.cpp|17|error: no match for 'operator[]' in 'transitionTable[oldState]'|
Вы можете помочь мне?
Заранее спасибо.