0
有人可以幫助我如何創建一個處理不同類型的變量的堆棧。我有一個BNF語法,我需要推入堆棧及以下,我需要推入堆棧如何創建一個不同類型的變量的堆棧?
1)的事+, - ,/ *
2)的整數 - 0,1,2 ..9
3)角色 - 一,b..z,A,b..Z
4)$符號,括號(開,關),強調
我不知道,如果我的下面的嘗試將滿足以上所有。如果我錯了,請糾正我。
stack<int,string>mystack
有人可以幫助我如何創建一個處理不同類型的變量的堆棧。我有一個BNF語法,我需要推入堆棧及以下,我需要推入堆棧如何創建一個不同類型的變量的堆棧?
1)的事+, - ,/ *
2)的整數 - 0,1,2 ..9
3)角色 - 一,b..z,A,b..Z
4)$符號,括號(開,關),強調
我不知道,如果我的下面的嘗試將滿足以上所有。如果我錯了,請糾正我。
stack<int,string>mystack
您需要使用多態性並將動態類型推送到您的堆棧。這可以是類似boost.variant或簡單的類層次結構的形式,並通過智能指針將項目存儲在堆棧中。這不是一個詳盡的清單。
C++不支持作爲核心語言項目的動態變量。您可以使用虛擬函數和繼承或類型擦除等技術來創建它們。
好吧有道理。謝謝你給我正確的方向。 –
你需要一個類可以容納任何這些類型作爲模板參數檢出boost :: variant.http://theboostcpplibraries.com/boost.variant – rakeshdn
@rakeshdn謝謝你指點我正確的方向 –