c 程式設計競賽常用STL總結

2021-08-22 03:24:53 字數 1921 閱讀 1055

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