【发布时间】:2011-04-20 12:00:51
【问题描述】:
美好的一天!
我正在用 C++ 制作非确定性有限自动机。我想做一个转换表。如您所知,它应该返回一组状态。例如,table[state][symbol] 应该返回 {q0,q1, etc..}。
我为此使用了 std::map 和 std::set。我发现了这个有用的例子:how to use stl::map as two dimension array
所以,我写了一些代码:
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]'|
你能帮帮我吗?
提前致谢。
【问题讨论】:
-
请不要以使所有给定答案无效的方式编辑您的问题。如果您有更多问题,您可以添加其他信息。