1.stl通用函式
empty() 堆疊為空則返回真
size() 返回棧中元素數目
c1.swap(c2) 交換兩個容器中的元素
max_size() 返回容器最大容量
1.stack
empty() 堆疊為空則返回真
pop() 移除棧頂元素
push() 在棧頂增加元素
size() 返回棧中元素數目
top() 返回棧頂元素
2.vector
at() 返回指定位置的元素
back() 返回最末乙個元素
begin() 返回第乙個元素的迭代器
clear() 清空所有元素
empty() 判斷vector是否為空(返回true時為空)
end() 返回最末元素的迭代器(譯註:實指向最末元素的下乙個位置)
erase() 刪除指定元素
front() 返回第乙個元素
insert() 插入元素到vector中
pop_back() 移除最後乙個元素
push_back() 在vector最後新增乙個元素
size() 返回vector元素數量的大小
swap() 交換兩個vector
3.set
集合(set)是一種包含已排序物件的關聯容器
begin()返回指向第乙個元素的迭代器
clear()清除所有元素
count()返回某個值元素的個數
empty()如果集合為空,返回true
end()返回指向最後乙個元素的迭代器
erase()刪除集合中的元素
find()返回乙個指向被查詢到元素的迭代器
insert()在集合中插入元素
size()集合中元素的數目
swap()交換兩個集合變數
由於集合不能像陣列那樣用陣列下標直接訪問,因此需要用特殊手段來使用:
迭代器
set s;
set::iterator ite;
for (ite = s.begin(); ite != s.end(); ite++) printf(「%d」, *ite);
迭代器跟指標的使用方法類似,唯一需要注意的一點是,s.end()指向的是集合中的最後乙個元素,但是並不是你插入集合的元素,也就是說集合在你插入的元素之外還自帶有乙個末元素,作為集合邊緣的標記。
4.queue
back() 返回最後乙個元素
empty() 如果佇列空則返回真
front() 返回第乙個元素
pop() 刪除第乙個元素
push() 在末尾加入乙個元素
size() 返回佇列中元素的個數
5.priority queues(優先佇列)
empty() 如果優先隊列為空,則返回真
pop() 刪除第乙個元素
push() 加入乙個元素
size() 返回優先佇列中擁有的元素的個數
top() 返回優先佇列中有最高優先順序的元素
優先佇列是稍微複雜一些同時也是十分的重點:
對於常規的資料型別,int, double, string等,定義方法如下:
預設的priority_queue pq; 是乙個越大的整數優先順序越高的優先佇列。
而priority_queue
struct edge;
}; bool operator < (edge a,edge b)
{ return a.weight < b.weight;//此處注意,希望優先順序越小的規則返回true,
//比如希望從大到小排序,則小於優先順序低,返回a
演算法競賽中常用的STL
toc 可以理解為bit這個資料型別的陣列 即取值只為0 1 大多數情況下,每個元素所佔記憶體確實只有1bit,是bool型別的1 8。方便各種位操作的進行。構造方法 都需要在定義時指明長度 123 4567 8 預設 std bitset 16 foo 填充0 整數 std bitset 16 f...
STL常用總結
棧 statck 這種資料結構在計算機中是相當出名的。棧中的資料是先進後出的 first in last out,filo 棧只有乙個出口,允許新增元素 只能在棧頂上增加 移出元素 只能移出棧頂元素 取得棧頂元素等操作。在stl中,棧是以別的容器作為底部結構,再將介面改變,使之符合棧的特性就可以了。...
程式設計常用的C 模板庫(STL)
棧 include stackname bool empty void pop void push const type type top size type size 佇列 include queuename bool empty void pop void push const type typ...