c 第14課 list容器

2021-10-23 15:28:59 字數 3956 閱讀 2842

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 公升序排...