關於vector list 之間區別的一點總結
阿新 • • 發佈:2019-01-07
1,vector 先看程式碼: vector<int>v; v.push_back(1); v.push_back(1); v.push_back(3); v.push_back(4); v.push_back(5); v.push_back(6); v.push_back(7); v.push_back(8); v.push_back(9); v.push_back(10); /*v.erase(v.begin());*///erase括號裡面應該傳地址 //vector 沒有remove //因為vector裡面沒有push_front 所以push_front用insert代替 v.insert(v.begin(),2); vector<int>::reverse_iterator it1 = v.rbegin(); while (it1!=v.rend()) { cout << *it1 << " "; it1++; } vector 中的reverse 和resize 區別 reserve是預先開闢段空間 後面會根據 capacity 來動態開闢 ,resize一旦開闢就成死的了不可改變 2.list list<int> l; l.push_back(1); l.push_back(2); l.push_back(3); l.push_back(4); l.push_back(5); l.push_back(6); l.push_back(7); list<int> l1; l1.push_back(8); l1.push_back(8); l1.push_back(8); l1.push_back(8); l1.push_back(8); l1.remove(8); l.merge(l1); l.insert(l.begin(),80); l.erase(l.begin()); list<int>::iterator it = l.begin(); while (it !=l.end()) { cout << *it << " "; it++; } //list的remove 會刪除所有的相同的資料比如8 其餘重要功能上面演示了 總結:vector與陣列類似,因為push_front會讓所有資料移動因此,沒有push_front list與雙向連結串列類似