c++程序設計競賽常用STL總結

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{
int start,end;
double weight;
Edge(int start,int end,int weight):start(start),end(end),weight(weight){};
};
bool operator < (Edge a,Edge b)
{
return a.weight < b.weight;//此處注意,希望優先級越小的規則返回true,
//比如希望從大到小排序,則小於優先級低,返回a

發佈了29 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章