看板 C_and_CPP 關於我們 聯絡資訊
補充說明(Supplement): 之前全都用 new, malloc, vector 只有用 1dim, 回來翻 primer 4e, 發現有幾個問題想問 (1) 3.3.2 節-表3.5,vector 竟然有提供 ==, !=, <, <=, >, >= 運算子 比較時是怎麼判斷?? (2) 實做 2D vector 時有點卡住 #define X 2 #define Y 3 vector<int>::size_type x, y; // 2 dim - 1 vector <int> *a2 = new vector<int>[X]; for(x=0; x<X; x++) a2[x].reserve(Y); // 2 dim - 2 vector <vector<int>> a3(X, vector<int>(Y)); 爬過文後,目前我只會配到這裡而已, 只是在這裡,二維以上我完全感受不到使用 vector 的好處 這種方式和 new, malloc 似乎沒什麼二樣,也是事先配置好空間 到時重新配置空間還先 free 掉 -> 麻煩。 調用方法都用下標方式調用, 這樣 push_back, resize 該怎麼動手? 謝謝各位不吝指教。 -- YouLoveMe() ? LetItBe() : LetMeFree(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.142
LPH66:(1) 應該是字典順序... 12/14 04:09
可能我沒辦法理解作者的意思, 表中是 vector 常用的操作 表裡提到 vector 也提供比較運算子 我好奇的是 vector<int> a, b; cout << (a>b) << endl; // 一定要括號起來 至於您說是字典順序, 是類似這樣嗎: for(i=0; i<a.size(); i++){ if(a[i] > b[i]) { // a>b cout << "1" << endl; break; } if(a[i] < b[i]) { // a<b cout << "-1" << endl; break; } } if(i==a.size() && a.size()==b.size()) // a==b cout << "0" << endl; else cout << "-1"; // b.size > a.size, b>a 無論如何,先謝謝 LPH66 的協助。 ※ 編輯: tropical72 來自: 180.177.76.142 (12/14 04:41)
chrisdar:a[i]-b[i] 12/14 07:07