1.vector
構造
vector v;
基本操作
v.begin() //指向迭代器中第乙個元素。v.end() //指向迭代器中末端元素的下乙個,指向乙個不存在元素。
v.push_back(elem) //在尾部加入乙個資料。
v.pop_back() //刪除最後乙個資料。
v.capacity() //vector可用空間的大小。
v.size() //返回容器中資料個數。
v.empty() //判斷容器是否為空。
v.front() //傳回第乙個資料。
v.back() //傳回最後乙個資料,不檢查這個資料是否存在。
v.at(index) //傳回索引idx所指的資料,如果idx越界,丟擲out_of_range。
v.clear() //移除容器中所有資料。
v.erase(iterator) //刪除pos位置的資料,傳回下乙個資料的位置。
v.insert(position,elem) //在pos位置插入乙個elem拷貝,傳回新資料位置。
v.insert(position,n,elem) //在pos位置插入n個elem資料,無返回值。
v.insert(position,begin,end) //在pos位置插入在[beg,end)區間的資料,無返回值。
2.priority_queue
構造
priority_queueque; //採用預設優先順序構造佇列最大值先出隊priority_queue,greater>que3; //最小值先出隊
priority_queue,less>que4; //最大值先出隊
基本操作
que.empty() //判斷乙個佇列是否為空que.pop() //刪除隊頂元素
que.push() //加入乙個元素
que.size() //返回優先佇列中擁有的元素個數
que.top() //返回優先佇列的隊頂元素
3.map
構造
mapmp;
基本操作
mp.begin() //返回指向map頭部的迭代器mp.clear() //刪除所有元素
mp.count() //返回指定元素出現的次數
mp.empty() //如果map為空則返回true
mp.end() //返回指向map末尾的迭代器
mp.equal_range() //返回特殊條目的迭代器對
mp.erase() //刪除乙個元素
mp.find() //查詢乙個元素
mp.get_allocator() //返回map的配置器
mp.insert() //插入元素
mp.key_comp() //返回比較元素key的函式
mp.lower_bound() //返回鍵值》=給定元素的第乙個位置
mp.max_size() //返回可以容納的最大元素個數
mp.rbegin() //返回乙個指向map尾部的逆向迭代器
mp.rend() //返回乙個指向map頭部的逆向迭代器
mp.size() //返回map中元素的個數
mp.swap() //交換兩個map
mp.upper_bound() //返回鍵值》給定元素的第乙個位置
mp.value_comp() //返回比較元素value的函式
4.queue
構造
queueq;
基本操作
q.push(num) //入列,插入佇列的末端。q.empty() //判斷佇列是否為空
q.size() //獲取佇列中的元素個數
q.back() //訪問佇列尾元素
5.stack
構造
stacks;stackc1(c2); 複製stack
基本操作
s.top() //返回棧頂資料s.push(num) //在棧頂插入資料
s.pop() //彈出棧頂資料
s.empty() //判斷棧是否為空
s.size() //返回棧中資料的個數
6.set
構造
sets;
基本操作
s.insert(num) //把元素插入到集合中,同一元素不會重複插入s.inset(first,second) //將定位器first到second之間的元素插入到set中,返回值是void
s.erase(6) //刪除鍵值為6的元素
s.find(6) //查詢鍵值為6的元素,如果沒找到則返回end()
s.begin() //返回set容器的第乙個元素
s.end() //返回set容器的最後乙個元素
s.clear() //刪除set容器中的所有的元素
s.empty() //判斷set容器是否為空
s.max_size() //返回set容器可能包含的元素最大個數
s.size() //返回當前set容器中的元素個數
s.rbegin() //返回的值和end()相同
s.rend() //返回的值和rbegin()相同
s.count() //用來查詢set中某個某個鍵值出現的次數,一般用於判斷某一鍵值是否在set出現過
erase(iterator) //刪除定位器iterator指向的值
erase(first,second) //刪除定位器first和second之間的值(不包括second)
erase(key_value) //刪除鍵值key_value的值
lower_bound(key_value) //返回第乙個大於等於key_value的定位器
upper_bound(key_value) //返回最後乙個大於等於key_value的定位器
7.deque
構造
dequec;dequec1(c2); //複製deque
dequec(n, elem); //建立乙個含有n個elem拷貝的deque
基本操作
c.assign(beg, end); //將beg-end區間中的值賦值給cc.assign(n, elem); //將n個elem的拷貝賦值給c
c.at(idx); //返回idx位置所指資料
c.front(); //返回第乙個資料
c.back(); //返回最後乙個資料
c.begin(); //返回指向第乙個資料的迭代器
c.end(); //返回指向最後乙個資料的下乙個位置的迭代器
c.rbegin(); //返回逆向佇列的第乙個資料
c.rend(); //返回指向逆向佇列的最後乙個資料的下乙個位置的迭代器
c.push_back(elem); //在尾部加入乙個資料
c.push_front(elem); //在頭部插入乙個資料
c.insert(pos, elem); //在pos位置插入乙個elem拷貝,返回新資料位置
c.insert(pos, n, elem); //在pos位置插入n個elem資料,無返回值
c.insert(pos, beg, end); //在pos位置插入在beg-end區間的資料,無返回值
c.pop_back(); //刪除最後乙個資料
c.pop_front(); //刪除頭部資料
c.erase(pos); //刪除pos位置的資料,返回下乙個資料的位置
c.erase(beg, end); //刪除beg-end區間的資料,返回下乙個資料的位置
c.empty(); //判斷容器是否為空
c.max_size(); //返回容器中最大資料的數量
c.resize(num); //重新指定佇列的長度
c.size(); //返回容器中實際資料的個數
c1.swap(c2) //將c1和c2元素互換
常用 STL 整理
vector 可變長陣列,變長是基於倍增的思想 系統為某乙個程式分配空間時,有乙個特點,他所需的時間基本上與空間大小無關,只與申請次數有關 即 100 和 1000 沒區別,只和請求次數有關 因此,vector的優化目標是,減少申請的次數 優化時間,可以浪費空間 起初先申請乙個 小的空間 例如32 ...
STL中bitset的用法的整理
建構函式 bitsetb b有n位,每位都為0.引數n可以為乙個表示式.如bitset 5 b0 則 b0 為 00000 bitsetb unsigned long u b有n位,並用u賦值 如果u超過n位,則頂端被截除 如 bitset 5 b0 5 則 b0 為 00101 bitsetb s...
C 中STL常用演算法概要
stl演算法部分主要由標頭檔案 組成。要使用其中的演算法必須包含標頭檔案,其中是數值演算法,則用於定義一些模板類,宣告函式物件。現在將stl演算法大致分為四類進行介紹 1 非可變序列演算法 指不直接修改其所操作的容器內容的演算法。2 可變序列演算法 指可以修改它們所操作的容器內容的演算法。3 排序演...