一、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 ...