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
c++程序設計競賽常用STL總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.