1. 程式人生 > >關於vector list 之間區別的一點總結

關於vector list 之間區別的一點總結

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與雙向連結串列類似