#include<list>
雙向循環鏈表
list結點的三個域:數據域、前驅元素指針域、后繼元素指針域
對于list的迭代器,只有++或--的操作,無+n或-n的操作
創建list對象:
list<int> l;
list<int> l(10);
插入和遍歷:
l.push_back(1); //尾插,鏈表自動擴張
l.push_front(2); //頭插,鏈表自動擴張
insert(l.begin()++, 3); //向迭代器位置插入
for(list<int>::iterator it = l.begin(); it != l.end(); ++it)cout << *it << endl;
for(list<int>::reverse_iterator rit = l.rbegin(); rit != l.rend(); ++it)cout << *rit << endl;
刪除:
l.pop_front();
l.pop_back();
l.remove(2);//鏈表中的2都會被刪除
l.erase(l.begin()++);
l.clear();
?
查找:
聲明#include<algorithm>
l.find(l.begin(), l.end(), 2); //找到,返回迭代器位置;未找到,返回end()
?
排序:
l.sort(); //升序排序
?
刪除連續元素,只保留一個:
l.unique(); //1 1 2 2 3 3 -> 1 2 3