看板 C_and_CPP 關於我們 聯絡資訊
問題(Question): 請問可以用 new 去開一個容器的陣列嗎 ? 然後容器的型別是自訂的 enum Example: #include <list> #include <iostream> using namespace std; enum Fruit { Apple, Banana, Orange}; int main() { int n; cin >> n; list<Fruit> *myList = new list<Fruit>[n]; for(int i=0; i<n; ++i){ for(int j=i+1; j<2*(i+1); ++j) myList[i].push_back(static_cast<Fruit>(j)); } list<Fruit>::iterator iterLF; for(int i=0; i<n; ++i){ iterLF = myList[i].begin(); while(iterLF != myList[i].end()) cout << *iterLF++ <<" "; cout << endl; } } 補充說明(Supplement): 就數字上而言 結果正確看似都正確 只是 enum 我只有設 3 個 應該是 0, 1, 2 而已 如果丟入 3 以上的數字這樣不會爆掉嗎 ?? 還是 list<Fruit> 其實就是 list<unsigned int> ? 麻煩各位高手指教 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.221.54
shadow0326:cast到enum範圍外好像是未定義行為 04/06 17:54
恩~ 那我這樣用 new 開動態的容器去包 enum 的寫法OK嗎? ※ 編輯: cory8249 來自: 140.114.221.54 (04/07 15:35)