次のマップを機能させようとしています。
enum ttype { shift, reduce }
map <string, pair<ttype, int> > lookup;
したがって、これは正常に機能しますが、キーが見つからなかったかどうかを確認する方法が必要です。たとえば、次のような効果があります。
cout << (lookup["a"]==NULL) << endl; // this is wrong, but I am trying to find a way to identify when lookup["a"] does not find a corresponding value
キーが見つからない場合、マップはデフォルトで構築された値を返すようです (たとえば、文字列にマッピングされている場合、空の文字列を返すだけで、lookup["a"] == かどうかを確認できます)。 "" - しかし、 std::pairs のデフォルトの構築値がどうなるかわかりません)。