鍊錶和list

2021-10-21 23:46:05 字數 1170 閱讀 2521

一、stl 的 list 是資料結構的雙向鍊錶,它的記憶體空間可以是不連續的,通過指標來進行資料的訪問,它可以高效率地在任何地方刪除和插入,插入和刪除操作是常數時間的。

二、list 和 vector 的優缺點正好相反,它們的應用場景不同。

(1)vector:插入和刪除操作少,隨機訪問元素頻繁

(2)list:插入和刪除頻繁,隨機訪問元素較少

**解釋

a.push_back(100);

在尾部新增元素100

int size = a.size();

統計元素個數

bool isempty = a.empty();

判斷是否為空

cout << a[0] << endl;

列印第乙個元素

a.insert(a.begin() + i, k);

在第i個元素前插入k

a.push_back(8);

尾部插入值為8的元素

a.insert(a.end(), 10, 5);

在尾部插入10個值為5的元素

a.pop_back();

刪除末尾元素

a.erase(a.begin() + i, a.begin() + j);

刪除區間[i, j - 1]的元素

a.erase(a.begin() + 2);

刪除第3個元素

a.resize(n)

陣列大小變為n

a.clear();

清空reverse(a.begin(), a.end());

使用函式reverse()翻轉函式

sort(a.begin(), a.end());

使用sort函式排序,從小到大排

hdu 1276 「士兵佇列訓練問題」.

#include

using

namespace std;

intmain()

k ==

2?k =

3:k =2;

}for

(it = mylist.

begin()

; it != mylist.

end(

); it ++

) cout << endl;

}return0;

}

鍊錶 List

stl中,list class list 的乙個例項 使用乙個doubly linked list管理元素。list不支援隨機訪問,但任何位置上執行元素的安插和移動都非常快。雙向鍊錶 doubly linked list 使用list時必須先包含標頭檔案 include其中list型別系定義於nam...

鍊錶list

includeusing namespace std include 鍊錶list stl中的鍊錶是乙個雙向迴圈鍊錶 list的迭代器是雙向迭代器 void printlist const list l coutl1.push back 10 l1.push back 20 l1.push back...

List雙向鍊錶

include 宣告 list int mylist 定義 mylist.push front 1 頭部插入元素 mylist.push back 2 尾部插入元素 pop front 移除頭部元素 pop back 移除尾部元素 list int iterator lter 迭代器定義 iter ...