標準模版庫STL
<algorithm> 算法庫
max, min 用于找出一組值中的最大值和最小值
swap 用于交換兩個變量的值
sort 用于對一個范圍內的元素進行排序
lower_bound, upper_bound 用于在已排序的容器中查找元素的下界和上界
unique(a,a+n)-a 用于在一個范圍內刪除相鄰重復的元素,返回不重復元素的范圍終點
Next_permutation 用于獲取一個序列的下一個排列
Prev_permutation 用于獲取一個序列的前一個排列
<stack> 棧
st.push() 將一個元素壓入棧頂,即將一個新元素添加到棧的頂部
st.top() 返回棧頂元素的引用,但不會移除該元素。如果棧為空,訪問棧頂元素是不安全的
st.pop() 移除棧頂元素,即將棧頂元素彈出,使得棧的大小減少一個元素
st.empty() 返回一個布爾值,表示棧是否為空。如果棧為空,返回 true,否則返回 false
st.size() 返回當前棧中元素的數量,即棧的大小
<queue> 隊列
q.push() 將一個元素壓入隊列尾部,即將一個新元素添加到隊列的尾部
q.front() 返回隊列頭部的元素的引用,但不會移除該元素。如果隊列為空,訪問隊列頭部元素是不安全的
q.pop() 移除隊列頭部的元素,即將隊列頭部元素彈出,使得隊列中的元素數量減少一個
q.empty() 返回一個布爾值,表示隊列是否為空。如果隊列為空,返回 true,否則返回 false
q.size() 返回當前隊列中元素的數量,即隊列的大小
<vector> 向量
V[i] 訪問向量 V 中的第 i 個元素,其中索引從 0 開始
v.push_back() 將一個元素添加到向量的末尾
V. insert() 在向量中的指定位置 it 處插入一個元素,可以是具體的值 value
v.size() 返回向量中元素的數量,即向量的大小
v.front() 返回向量的第一個元素的引用
v.back() 返回向量的最后一個元素的引用
v.empty() 返回一個布爾值,表示向量是否為空。如果向量為空,返回 true,否則返回 false
v.clear() 移除向量中的所有元素,使得向量為空
v.erase(it) 從向量中移除由迭代器 it 指向的元素
<map> 映射
map<int, int> a 創建一個名為 a 的映射,其中鍵和值都是整數類型。
m.find(x) 在映射 m 中查找鍵為 x 的元素,返回一個迭代器指向該元素。如果找不到,返回 m.end() 迭代器。
m.count(x) 返回映射 m 中鍵為`x 的元素的數量。由于映射中每個鍵只能有一個對應的值,所以這個函數的返回值要么是 0(未找到)要么是 1(找到)。
m.size() 返回映射中元素的數量,即映射的大小。
<list> 列表
li.front() 返回雙向鏈表 li 中的第一個元素的引用。
li.pop_back()?移除雙向鏈表 li 的最后一個元素。
li.pop_front() 移除雙向鏈表 li 的第一個元素。
<deque> 雙向鏈表
雙端隊列允許在兩端(前端和后端)高效地插入和移除元素。
dq.push_back(value) 和 dq.push_front(value):在后端或前端添加元素。
dq.pop_back() 和 dq.pop_front():從后端或前端移除元素。
dq.back() 和 dq.front():訪問后端和前端元素。
dq.size():返回元素數量。
dq.empty():檢查是否為空。
dq.clear():移除所有元素。
dq.at(index):訪問特定索引處的元素。
dq.begin() 和 end():返回迭代器。
dq.rbegin() 和 rend():反向迭代器。
dq.erase(position):移除指定位置的元素。
dq.insert(position, value):在指定位置插入元素。
dq.swap(other):交換兩個雙端隊列的內容。
<set> 集合
insert(value):插入一個元素到集合中。插入后會自動排序,且不會插入重復元素。 erase(value):從集合中刪除指定的元素。
find(value):查找給定元素是否存在于集合中,如果存在,返回指向該元素的迭代器,否則返回 end()。
size():返回集合中的元素數量。
empty():檢查集合是否為空。
clear():移除集合中的所有元素。
begin() 和 end():返回迭代器,用于遍歷集合。
lower_bound(value):返回第一個大于等于給定值的元素的迭代器。
upper_bound(value):返回第一個大于給定值的元素的迭代器。
equal_range(value):返回一個 pair,其中包含了與給定值相等的元素的范圍。
#include <set>
#include <iostream>
using namespace std;int main() {set<int> mySet;mySet.insert(5);mySet.insert(3);mySet.insert(8);cout << "Set contains:";for (int num : mySet) {cout << " " << num;}cout << endl;if (mySet.find(3) != mySet.end()) {cout << "3 在集合中." << endl;}return 0;
}
Iterator 送代器
#include <vector>
#include <iostream>
using namespace std;int main() {vector<int> numbers = {1, 2, 3, 4, 5};// 使用送代器遍歷for (vector<int>::iterator it = numbers.begin(); it != numbers.end(); ++it) {cout << *it << " ";}return 0;
}