→ shadow0326:cast到enum範圍外好像是未定義行為 04/06 17:54
恩~ 那我這樣用 new 開動態的容器去包 enum 的寫法OK嗎?
※ 編輯: cory8249 來自: 140.114.221.54 (04/07 15:35)
問題(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