list介紹
1) list是乙個雙向鍊錶容器,可高效地進行插入刪除元素。
2) list不可以隨機訪問元素,所以不支援at.(pos)函式與操作符。it++(ok) it+5(err)
3) #include
list物件的預設構造
list採用採用模板類實現,物件的預設構造形式:list lstt; 如:
list lstint; //定義乙個存放int的list容器。
list lstfloat; //定義乙個存放float的list容器。
list lststring; //定義乙個存放string的list容器。
list頭尾的新增移除操作
1) list.push_back(elem); //在容器尾部加入乙個元素
2)list.pop_back(); //刪除容器中最後乙個元素
3)list.push_front(elem); //在容器開頭插入乙個元素
4) list.pop_front(); //從容器開頭移除第乙個元素
list的資料訪問
1) list.front(); //返回第乙個元素。
2) list.back(); //返回最後乙個元素。
list與迭代器
1) list.begin(); //返回容器中第乙個元素的迭代器。
2)list.end(); //返回容器中最後乙個元素之後的迭代器。
3)list.rbegin(); //返回容器中倒數第乙個元素的迭代器。
4)list.rend(); //返回容器中倒數最後乙個元素的後面的迭代器。
list物件的帶引數構造
1) list(beg,end); //建構函式將[beg, end)區間中的元素拷貝給本身。注意該區間是左閉右開的區間。
2) list(n,elem); //建構函式將n個elem拷貝給本身。
3) list(const list &lst); //拷貝建構函式。
list<
int> lstinta;
lstinta.
push_back(1
);lstinta.
push_back(3
);lstinta.
push_back(5
);lstinta.
push_back(7
);lstinta.
push_back(9
);list<
int>
lstintb
(lstinta.
begin()
,lstinta.
end())
;//1 3 5 7 9
list<
int>
lstintc(5
,8);
//8 8 8 8 8
list<
int>
lstintd
(lstinta)
;//1 3 5 7 9
list的賦值
1) list.assign(beg,end); //將[beg, end)區間中的資料拷貝賦值給本身。注意該區間是左閉右開的區間。
2) list.assign(n,elem); //將n個elem拷貝賦值給本身。
3) list& operator=(const list &lst); //過載等號操作符
4) list.swap(lst); // 將lst與本身的元素互換。
list<
int> lstinta,lstintb,lstintc,lstintd;
lstinta.
push_back(1
);lstinta.
push_back(3
);lstinta.
push_back(5
);lstinta.
push_back(7
);lstinta.
push_back(9
);lstintb.
assign
(lstinta.
begin()
,lstinta.
end())
;//1 3 5 7 9
lstintc.
assign(5
,8);
//8 8 8 8 8
lstintd = lstinta;
//1 3 5 7 9
lstintc.
swap
(lstintd)
;
list的大小
1) list.size(); //返回容器中元素的個數
2) list.empty(); //判斷容器是否為空
3) list.resize(num); //重新指定容器的長度為num,若容器變長,則以預設值填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。
4) list.resize(num, elem); //重新指定容器的長度為num,若容器變長,則以elem值填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。
list的插入
1) list.insert(pos,elem); //在pos位置插入乙個elem元素的拷貝,返回新資料的位置。
2) list.insert(pos,n,elem); //在pos位置插入n個elem資料,無返回值。
3) list.insert(pos,beg,end); //在pos位置插入[beg,end)區間的資料,無返回值。
list<
int> lsta;
list<
int> lstb;
lsta.
push_back(1
);lsta.
push_back(3
);lsta.
push_back(5
);lsta.
push_back(7
);lsta.
push_back(9
);lstb.
push_back(2
);lstb.
push_back(4
);lstb.
push_back(6
);lstb.
push_back(8
);lsta.
insert
(lsta.
begin()
,11);
// lsta.
insert
(++lsta.
begin()
,2,33
);// lsta.
insert
(lsta.
begin()
, lstb.
begin()
, lstb.
end())
;//
list的刪除
1) list.clear(); //移除容器的所有資料
2) list.erase(beg,end); //刪除[beg,end)區間的資料,返回下乙個資料的位置。
3) list.erase(pos); //刪除pos位置的資料,返回下乙個資料的位置。
4)lst.remove(elem); //刪除容器中所有與elem值匹配的元素。
list的反序排列
lst.reverse(); //反轉鍊錶,比如lst包含1,3,5元素,執行此方法後,lst就包含5,3,1元素。
list<
int> lsta;
lsta.
push_back(1
);lsta.
push_back(3
);lsta.
push_back(5
);lsta.
push_back(7
);lsta.
push_back(9
);lsta.
reverse()
;//9 7 5 3 1
python學習 第14課
1.將ga10.wms5.jd.com.txt中分別以upstream和location開頭的內容篩選出來,並分別生成相應的新文件 import codecs,re,os with codecs.open ga10.wms5.jd.com.txt r as f1 pattern1 re.compil...
第14課 元素的定位
css定位令你可以將乙個元素精確地放在頁面上你所指定的地方。聯合使用定位與浮動 參見第13課 你將能夠建立多種高 級而精確的布局。本課我們將討論以下內容 把瀏覽器視窗想象成乙個座標系統 css定位的原理是 你可以將任何盒子 box 放置在座標系統的任何位置上。假設我們要放置乙個標題。通過使用盒狀模型...
C 容器list排列
list容器網上資料講的相對其他容器vector等要少很多,這裡對list容器的排序簡單說一下。框架 include include using namespace std int main return 0 使用push back 新增元素。假定要輸入的資料為 3 1 5 4 2sort 公升序排...