list
是 C++ 標準模板庫(STL, Standard Template Library)的成員之一,它是一個雙向的 linked list
(鏈結串列),適合需要頻繁插入或刪除元素的場景。它不支援隨機存取,但插入與刪除操作效率高。
特性
- 雙向鏈結結構,插入與刪除效率高(O(1))。
- 不支援隨機存取(無法使用索引)。
- 支援正向與反向遍歷。
成員函數介紹
- push_back:將元素添加到尾端。
- push_front:將元素添加到頭部。
- pop_back:移除尾端的元素。
- pop_front:移除頭部的元素。
- size:返回元素的數量。
- empty:返回是否沒有元素。
- erase:移除指定位置或範圍的元素。
- clear:清除所有元素。
- insert:在指定位置插入新元素。
需要注意的是 list
沒有 find
這個成員函數,如果需要尋找指定元素的話,要用包含在 <algorithm>
裡面的 find
函數。
用法範例
#include <iostream>
#include <list>
using namespace std;
int main() {
// 建立整數清單
list<int> li;
// 新增元素
li.push_back(2);
li.push_front(4);
li.push_back(6);
li.push_front(4); // 此行執行後li=[4,4,2,6]
// 在指定位置插入
li.insert(names.begin() + 1, 5); // 在索引1的地方插入元素,此行執行後li=[4,5,4,2,6]
// 刪除指定元素(所有符合條件的元素都會被刪除)
li.remove(4); // 此行執行後li=[5,2,6]
// 取得大小
int size = li.size(); // li.size()=3
// 反轉清單
li.reverse(); // 此行執行後li=[6,2,5]
// 排序
li.sort(); // 由小到大排序,此行執行後li=[2,5,6]
return 0;
}
適用場景
- 需要頻繁插入或刪除元素時。
- 不需要隨機存取資料時。